我已徹底搜索,但在特定情況下無法找到解決此問題的解決方案。CORS已啓用,但預檢的響應在POST JSON時有無效的HTTP狀態代碼404
使用Fiddler(POST)的跨域服務調用正確執行並接收數據。但是,通過瀏覽器(Chrome),我收到消息'預檢具有無效的HTTP狀態代碼404'
我有一個Web API應用程序並已安裝CORS並確保web.config文件中存在以下內容:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
這裏是Ajax調用:
var secretKey = 'difusod7899sdfiertwe08wepifdfsodifyosey',
url = 'http://api.intrinsic.co.uk/api/v1/PTS/ActiveDrivers?api_key=098werolllfWnCbPGAuIXVOJidDHRfYcgxImMlxTXopuekXrSOqOWzEAIdeNTWGPQPpyHxgVGsFysGFKPzq';
jQuery.ajax ({
url: url,
type: "POST",
data: JSON.stringify({ secretKey: secretKey}),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data){
var content = "<table class=\"container\"><thead><tr><th>Driver Number</th><th>Timestamp</th><th>VRN</th><th>Latitude</th><th>Longitude</th><th>Track Link</th></tr></thead><tbody>";
$.each(data.ActiveDrivers.DriverLocationStatus, function (index, element) {
content += "<tr><td>" + element.DriverNumber + "</td>";
content += "<td>" + dateFormat(element.Timestamp, "d/m/yy") + " " + dateFormat(element.Timestamp, "h:MM TT") + "</td>";
content += "<td>" + element.VRN + "</td>";
content += "<td>" + element.CurrentLatitude + "</td>";
content += "<td>" + element.CurrentLongitude + "</td>";
content += "<td><a href=\"https://www.google.co.uk/maps/place//@" + element.CurrentLatitude + "," + element.CurrentLongitude + ",15z/\" target='_blank'>Track »</a></td></tr>";
});
content += "</tbody></table>";
$("#result").html(content);
}
});
顯然,工作在完美的同一個域,如前所述,它的工作原理使用招。
我確定它是瀏覽器的預檢選項檢查失敗的內容類型的'應用程序/ json',但我不知道如何解決它。
我應該添加的web.config文件中是否缺少某些東西?
我試着刪除'內容類型'沒有任何影響。
我曾希望this article會解決這個問題(它似乎有希望的),但遇到了同樣的錯誤:
XMLHttpRequest cannot load [URL]. Response for preflight has invalid HTTP status code 404
它也適用於我.. –
能否請你幫我在這方面努力:https://magento.stackexchange.com/questions/170342/ magento-htaccess-response-for-preflight-has-invalid-http-status-code-400 –
謝謝工作。添加處理程序也很重要。 – Dileep