2017-01-06 63 views
1

這個問題只發生在Mac上的Safari當前版本。 (較舊版本的Safari可能會受到影響,但這不是必需的)奇數Safari使用jQuery.ajax問題()

每次只爲Safari返回一個通用500錯誤。

您正在查找的資源存在問題,無法顯示。

所有其他瀏覽器我可以測試成功返回數據是預期的HTML塊顯示。

這是我的ajax調用。

$.ajax({ 
     async: true, //Added based on internet suggestions 
     type: "POST", 
     url: '../Provider/SaveAddress', 
     data: buildAddressJsonData(), 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) {    
      $("#result").html(data); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      DisplayErrorMessage(xhr, ajaxOptions, thrownError); 
     } 
    }); 

我在async: true的基礎上添加了一些其他人說的問題,解決了這個問題。我甚至嘗試用HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*");修改響應serverside,因爲這也是建議的。

我也確認buildAddressJsonData()提供正確的json,這裏是一個例子。

{"IsRequired":"1","AddressIndex":"1","AddressLine1":"IBM","AddressLine2":"123 Upper St","AddressLine3":"Unit 14","City":"My Town","Id":"481c40d3-4a38-492b-880e-33b16021fb69","Lk_AddressTypeId":"d2316e7e-b2df-4274-9757-1ae5aa171f68","Lk_CountryId":"13c9fb13-8f50-438e-890a-63e6f1f4cd29","Lk_StateId":"0894fa8a-8d6b-43fc-89ec-e16ba915b6a4","SendMail":1}

這一切都是裝在一個ASP.Net應用MVC5

這些都不似乎做任何改變。

編輯:我告訴服務器日誌似乎沒有顯示任何東西,但我可以通過配置(我沒有對它們的訪問)

+0

Safari在接收500錯誤的響應文本時是否沒有錯誤? –

+0

@RoryMcCrossan - 我能看到的唯一回覆文本是'您正在查找的資源存在問題,並且無法顯示。「 – Jason

+0

很奇怪。我可以想象的唯一區別是來自Safari請求的'data'在某種程度上會導致服務器端代碼出現問題。你可以將'buildAddressJsonData()'的代碼添加到問題中 - 或者至少檢查它是否生成了您期望的對象。 –

回答

0

此解決方案,這是什麼Josep建議this question

事實證明,OSX和iOS上的Safari在默認情況下會阻止第三方Cookie,並且更改此設置可解決此問題。