2010-09-28 229 views
2

我在godaddy共享的linux服務器上遇到了ajax請求的奇怪行爲。 該請求可以在我測試過的很多其他服務器上正常工作,但在這個服務器上,由於某種原因GET請求變成了OPTIONS請求。Ajax GET請求變成OPTION請求

這裏的(使用的mootools 1.1)的js代碼:

你可以看到,該方法被定義爲GET。然而,當我看到使用Firebug發生的請求時,它會作爲OPTIONS請求傳遞。任何想法如何或爲什麼會發生?

+0

'> GET請求變成一個OPTIONS請求一些reason.' 你是否偶然橋接http到https的協議(反之亦然)? – 2010-09-28 19:56:32

+0

嗨Dimitar--不,它都是直的http。 – julio 2010-09-28 19:57:15

+0

'myurl'是否與源域匹配(例如,myurl有www.domain.com,您正在通過domain.com進行瀏覽) – 2010-09-28 20:05:35

回答

2

通常,在XHR(ajax)請求期間,這種行爲有兩個原因。

  1. 協議橋接(從https到http或反之亦然),由此請求的URL協議的不同而不同請求的URL
  2. 子域差(例如,從domain.com請求www.domain.com)

底線:爲了XHR的工作,協議和主機名稱需要匹配,因爲訪問控制限制。

讀取:圍繞跨域策略限制

http://www.w3.org/TR/access-control/#cross-origin-request-with-preflight0

方式: http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

等等等等