在html5界面使用ajax從服務器獲取數據,發生了奇怪的事情,在瀏覽器和蘋果手機中該ajax是正常的。但是在安卓(小米)手機裏測試的時候,ajax總是請求總會進入error中。奇了怪了。
這是打印出的返回的error中的參數:
這是ajax所報的錯:
在網上找到這樣一篇文章:http://www.tuicool.com/articles/7FVnMz
才知道是因爲跨域的問題。
Access-Control-Allow-Origin
只有當目標頁面的response中,包含了 Access-Control-Allow-Origin
這個header,並且它的值裏有我們自己的域名時,瀏覽器才允許我們拿到它頁面的數據進行下一步處理。如:
Access-Control-Allow-Origin: http://run.jsbin.io
如果它的值設爲 *
,則表示誰都可以用:
在產品環境中,沒人會用 *
但是我需要誰都可以獲取到服務器端該接口的數據,那麼就需要在服務器相應的接口中添加header:
response().setHeader("Access-Control-Allow-Origin", "*"); //這是在play的框架中,在有些裏邊可能是addHeader()