2017-02-28 21 views
0

最近、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> 

ブラウザコンソールにエラーが表示されないようです。

+1

Firefoxのコンソールでデバッグしましたか?実際には "$ .ajax("コール? – JuanR

+0

ポストのコードは問題を示していません( 'http:// localhost'からレンダリングされたページ、ポート/同じスキーマはないと仮定します)。 –

+0

Juan、はいFirefoxのコンソールでデバッグして、それがajaxに到達しました。他のブラウザでもすべてうまく動作していると言えます。 – McCrockett

答えて

0

これは恥ずかしいですが、ここに私が見つけたものがあります。追加ブロッカーアドオン 'Add Block Plus' for Firefoxがこのajax呼び出しをブロックしていました。ただし、実際には、Webサービス(asmx.cs)を使用して個別のWebフォームテストソリューションをセットアップしてテストしたことにも注意してください。そして、AjaxはADPを使ってFirefoxを呼び出す。だから私の会社の製品でFirefox/ADPと組み合わせて何かが悪い組み合わせです。幸いにも、私たちはADPをサポートしていないので、これは問題ではないと思います。それにもかかわらず、これは私が見つけたものです。

関連する問題