私は徹底的に検索しましたが、特定の状況でこの問題の解決策を見つけることはできません。CORSを有効にしましたが、プレフライトの応答に無効なHTTPステータスコード404が付きます。JSONを投稿するとき
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);
}
});
は、それがバイオリンを使用して動作しますが、前述したように、完全に同じドメイン上で動作し、。
コンテンツタイプ 'application/json'で失敗しているのはブラウザのプリフライトOPTIONSチェックですが、修正方法はわかりません。
web.configファイルに追加する必要があるものがありますか?
私は 'content-type'を削除しようとしましたが、影響はありません。
私は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