2017-01-10 50 views
2

選項要求中始終得到失敗的MAC OSX和iOS 10400錯誤的請求)尤其是在HTTPS環境SAFARI只有。 Chrome和其他瀏覽器正常工作(200)。我們嘗試了幾乎所有我們知道的解決方法,但似乎沒有任何效果。以下是Ajax調用帶選項報頭與跨域:HTTPS選項請求失敗(400錯誤的請求)只有Safari 10的Mac和iOS CORS

$.ajax(
    { 
     headers: { 
      Accept : "application/json", 
      'Content-Type': "application/json" 
     }, 
     type : "POST", 
     url : userDataSource, 
     contentType: "application/json", 
     data : JSON.stringify(formData), 
     dataType : 'json', 
     xhrFields :{ 
      withCredentials: true 
     }, 
     crossDomain : true, 
     success : function(data){........}})..... 

我們嘗試以下JavaScript的修改:

  • 修改預檢頭(接受和內容類型)
  • 拆卸頭。
  • 將標題更改爲小寫,反之亦然。
  • 根據響應標題添加一些標題。

我們在服務器端也做了類似的更改,並進行了一些代理級別更改,但沒有任何幫助。它不是公共Web應用程序,而是其內部組織網絡。

它對我們解決這個問題非常重要,因爲它阻礙了交付。

請幫忙。

enter image description here

+0

這個人有一個叫喊題目來得到答案。 – Jai

回答

0

這看起來像一個服務器的問題,這是很難具有用於服務器平臺上沒有任何信息時,要弄清楚。 您是否嘗試調試引發400錯誤請求的代碼?日誌文件中可能還有更多信息。 當你說這只是Safari和iOS中的一個問題時,它可能是由請求中不同的用戶代理引起的(只是猜測)。

您是否檢查過請求中是否有任何其他HTTP標頭與工作請求(請確保比較OPTIONS請求,而不是POST)相比有所不同。您可以使用Fiddler或Postman嘗試一些請求的變體,以將問題縮小到特定原因。

對不起,沒有確定的答案,也許你可以提供有關服務器的更多信息。

+0

很抱歉聽到:/。如果您在Fiddler/Postman中使用與Safari請求相同的內容(包括標題)創建OPTIONS請求,它也會失敗嗎? – FelschR

+0

我們嘗試了幾乎所有你提到的事情,但不幸的是似乎沒有任何工作。服務器是Apache的截圖。提琴手在MAC OSX上不能很好地工作,並且試圖讓Postman得到很多幫助。我們甚至試圖模仿CHROME中的請求和響應頭文件,因爲chrome返回200,但這也沒有幫助。嘗試更改Safari瀏覽器中的用戶代理。選項失敗 - SAFARI(iOS和OSX)中有400個失敗。謝謝 – Akash

相關問題