簡體   English   中英

XMLHttpRequest訪問控制在url未完成時允許Origin

[英]XMLHttpRequest Access Control Allow Origin when url is not complete

有時,當我提交ajax請求時,我收到此錯誤

XMLHttpRequest cannot load http://www.mysite.com/go/submit. Origin http://mysite.com is not allowed by Access-Control-Allow-Origin.

以下是我想到的解決方案:

* Add the allow origin rule everywhere?
* Write .htaccess to always redirect to full url
* Use this method http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

我該如何解決這個問題?

相同的原始策略意味着您無法分析來自另一個“起源”(域,端口)的數據(json,html,圖像等)。

注意

術語“origin”是使用域名,應用程序層協議和(在大多數瀏覽器中)運行腳本的HTML文檔的端口號定義的

解決方案是在服務於其他數據的服務器上設置明確允許訪問的CORS頭

Access-Control-Allow-Origin: *

因此,只要您不是只顯示它們,就必須控制服務器為您嵌入的數據提供服務。

一個有點間接的解決方案是讓瀏覽器認為只有一個來源,通過在服務器上放置一個代理。 在apache上你不需要.htaccess但是mod_proxy 如果你想安裝這樣一個代理,你可能會對這個問題感興趣(實際上你可能對我幫助我在我的一台服務器上設置這樣一個代理的答案更感興趣)。

如果您唯一的問題是人們輸入mysite.com而不是www.mysite.com並且您只有一台服務器,則可以使用.htaccess重寫URL:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM