每當我試圖與在Safari username
& password
選項發送$.ajax
請求(同一產地),它只是默默地失敗和永遠不會觸發任何完整的,成功的,或錯誤回調。在Chrome中完全相同的請求正常工作。
req = $.ajax
url: ...
type: 'POST'
username: ...
password: ...
data: ...
req.done ...
req.fail ...
如果我運行相同的代碼,但沒有username
或password
;
req = $.ajax
url: ...
type: 'POST'
data: ...
該請求實際上是在Safari中完成的,但顯然導致服務器的身份驗證失敗。我甚至不確定如何調試。我嘗試在$.ajax
回調周圍放棄jQuery源代碼中的一些日誌行,並且它似乎(Safari)中的(嘗試)已驗證的請求永遠不會發生。
修訂1/8:
Safari /鉻還測試與jQuery 1.11.0,發現同樣的結果。
已更新1/8:
gulty的beforeSend解決方案是我能得到基本身份驗證在Safari中的唯一方法:
req = $.ajax
url: ...
type: 'POST'
beforeSend: (xhr) -> xhr.setRequestHeader('Authorization', 'Basic username:password')
data: ...
'用戶名'和'密碼'是無效的jQuery.ajax選項。它們應該構成'數據'的一部分。無論Chrome在做什麼,這可能不是你的想法。 –
你確定? [文檔](http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings)表示他們進入'jQuery.ajax([settings])'。無論如何,當我將它移動到'data'時,會發生完全相同的事情。 – adamyonk
請原諒,它們在HTTP訪問認證請求的上下文中有效。我的錯。 –