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:
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,但我的方法從來沒有真正被調用。我從這裏的各種答案嘗試了幾個其他修復,一些擺脫了錯誤,但我發佈的對象將爲空。
驗證您可以調用來自同一產地的方法。 – 11thdimension
@ 11thdimension使用ARC(高級REST客戶端 - 來自Chrome App Store)的工作正常 – Timothy
REST客戶端不受CORS的約束,請嘗試使用Ajax。 – 11thdimension