2013-06-21 21 views
0

我正在進行ajax調用以檢查用戶名可用性。要調用的URL在js文件中被硬編碼。例如http://abc.com/users/check_availability即使當從同一個域名調用Ajax時,也會出現跨域錯誤

現在,當我從http://abc.com進行ajax調用時,它可以正常工作,但是如果我從http://www.abc.com撥打電話,則會出現跨域錯誤。

XMLHttpRequest無法加載http://abc.com/users/check_availability?username=sd。 Access-Control-Allow-Origin不允許使用原產地http://www.abc.com

我該如何解決這個問題? jsonp是唯一的方法嗎?

+0

重定向對'www.abc.com'頁面來'abc.com'任何請求。如果你使用的是Apache,你可以用[mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)來完成。 – 2013-06-21 07:40:36

回答

1

您是否嘗試過在你的服務返回的數據設置備用HTTP標頭值:

Access-Control-Allow-Origin:* 

Access-Control-Allow-Headers:"Content-Type, X-Requested-With, X-Auth-Token" 

試圖讓休息的時候,這個工作對我們呼籲在不同的子域的服務。

您不必製作Access-Control-Allow-Origin:*您可能會受到更多限制。但我們試圖只是爲了檢查它是否會起作用。

只是爲了澄清 - 我們仍然使用JSON而不是JSONP

+0

感謝Sharath,我們在http://abc.com/users/check_availability添加了頭文件(「Access-Control-Allow-Origin:http:// www。abc.com」),並開始工作。 –