我在通過jQuery的$ .ajax函數處理過的第三方API上調用POST。然而,當我打這個電話,我得到了以下錯誤:XMLHttpRequest cannot load http://the-url.com. The request was redirected to 'http://the-url.com/anotherlocation', which is disallowed for cross-origin requests that require preflight.
跨域AJAX請求不起作用
我從this post看到,這可能是一個錯誤的Webkit,所以我想它在Firefox(我在Chrome開發),我得到了相同的結果。我在Chrome和Firefox上嘗試了這一點,並獲得了相同的結果。
每this post,我也由$就功能crossDomain
屬性設置爲true
並設置dataType
到jsonp
使用JSONP都試過。但是,這導致500內部服務器錯誤。
當我用--disable-web-security標誌啓動Chrome時,我沒有任何問題。但是,如果我正常啓動瀏覽器,那麼我得到錯誤。
所以,我想這可能是一個2部分的問題。我能做些什麼來完成這個跨域請求?如果JSONP是答案,那麼我該如何確定第三方API是否正確設置以支持這一點?
編輯:下面是截圖的時候我就與瀏覽器安全呼叫禁止:https://drive.google.com/file/d/0Bzo7loNBQcmjUjk5YWNWLXM2SVE/edit?usp=sharing
這裏的screenchost時,我就與啓用(正常人一樣)的瀏覽器安全呼叫:https://drive.google.com/file/d/0Bzo7loNBQcmjam5NQ3BKWUluRE0/edit?usp=sharing
這會工作,但我會稱之爲「解決方法」而不是解決方案。有些人在某些情況下只能依靠前端,而沒有選擇使用後端代理。 – Yann
是的,我希望有更好的解決方案。但是,由於受到安全限制而無法控制服務器,所以通過我控制的服務器進行代理是我遇到的最佳解決方案。 – Don