代碼是幾個月前寫的,之前的幾個月一直運行正常。
可今天使用的時候運行失敗了,提示:No 'Access-Control-Allow-Origin' header
使用 chrome、firefox 都測試了,問題一樣,只能在 ie 8 上正常運行了。
在服務端,我明明添加 Access-Control-Allow-Origin: *,可就是無法跨域訪問。
找了半天原因,首先在chrome中發現提交的請求中沒有 cookie 部分, 我記得之前chrome瀏覽器默認都有提交 cookie的。
先修改客戶端代碼,添加:http_request.withCredentials = true; //支持跨域發送cookies
然后測試,瀏覽器提示 but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials.
再修改服務端,添加:Access-Control-Allow-Credentials: true
再測試,瀏覽器提示什么 不能使用 Access-Control-Allow-Origin: *, 必須使用 Access-Control-Allow-Origin: [http://域名]
好吧,再修改服務端代碼,Access-Control-Allow-Origin: [http://域名]
再測試,問題終於解決了。
我就奇怪,之前一直運行都挺正常的,我的chrome也沒升級過,怎么就突然出現這樣問題了呢,請來告訴我呢?
