1
静的なHTMLページにトラフィックを記録するためのすばやくかわいいスクリプトを作成しています。私はAPIをホストしている別のサーバーにPOSTを行っています。サーバがCORSが有効になっています(以下のコードを参照してください)私はまだ405CORSは有効になっていますが、まだ405を取得します。
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, PATCH, DELETE, OPTIONS" />
は、ここに私のJavaScriptのget:ここ
var host = window.location.host;
var hostname = window.location.hostname;
var href = window.location.href;
var port = window.location.port;
var path = window.location.pathname;
var referrer = document.referrer;
var obj = {
Host: host,
HostName: hostname,
Href: href,
Port: port,
Path: path,
Referrer: referrer
};
$.ajax({
type: 'POST',
url: 'http://localhost/system/api/sp/logvisit',
data: obj,
dataType: 'json',
contentType: 'application/json'
});
は私のコントローラです:
namespace Gs.Api
{
public class SPController : ApiController
{
[Route("api/sp/logvisit")]
[HttpPost]
public void LogVisit(LogVisitRequest request)
{
// do stuff with request
}
}
}
私が試しましたここでの主な答えはHandling CORS Preflight requests to ASP.NET MVC actionsですが、これは405を取り除きましたが、私の方法は実際には呼ばれませんでした。私はここでさまざまな答えからいくつかの他の修正を試して、いくつかはエラーを取り除いたが、投稿されたオブジェクトはnullになる。
に、
data: obj
を変更しました。 – 11thdimension@ 11thdensionメソッドは、ARC(Advanced REST Client - Chrome App Storeから) – Timothy
を使用して正常に動作します。RESTクライアントはCORSにバインドされていません.Ajaxを試してみてください。 – 11thdimension