最近、FirefoxがAjax呼び出しを.asmx.csページにあるWebService WebMethodに送信しなくなりました。基本的に、FFはこの呼び出しを試みることさえしません。私は同様の問題を抱えた他の投稿を見たことがありますが、これまでのところ解決策は見つかりませんでした。以前はこれまでに問題になったことはありません(新しいFFアップデートが原因であるかのように)、ChromeとIEでうまくいくようです。これはJavascriptを次のとおりです。FirefoxがAsmxのAjax呼び出しで停止する
<script>
$(document).ready(function() {
var hash = 'JzVpYbr48';
var dataS = JSON.stringify({ sessionHash: hash, customerID: '010000' });
$('#foo').on('click', function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: "http://localhost/MVRC/ad.asmx/GetAchievementsSummary",
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: dataS,
success: function (res) {
console.log("badges success");
},
error: function (res) {
console.log("badges failure");
}
});
});
});
</script>
これは、基本的には背後にあるコードである:ここでは、
[WebService(Namespace = "http://www.ourdomain.com/mvrc")]
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class ad : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public object GetAchievementsSummary(string sessionHash, string customerID)
{
return new { foo = "blah", bar = "blah" };
}
}
そして、それは価値がある何のためには、web.configファイルからいくつかの可能性が関連抜粋です:
<location path="ad.asmx">
<system.web>
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
<conformanceWarnings>
<remove name="BasicProfile1_1" />
</conformanceWarnings>
</webServices>
</system.web>
</location>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
ブラウザコンソールにエラーが表示されないようです。
Firefoxのコンソールでデバッグしましたか?実際には "$ .ajax("コール? – JuanR
ポストのコードは問題を示していません( 'http:// localhost'からレンダリングされたページ、ポート/同じスキーマはないと仮定します)。 –
Juan、はいFirefoxのコンソールでデバッグして、それがajaxに到達しました。他のブラウザでもすべてうまく動作していると言えます。 – McCrockett