私が比較的単純なjQueryプラグインだと思ったことに問題があります...
プラグインはajaxを介してphpスクリプトからデータをフェッチし、オプションをに追加する必要があり<select>
ます。ajaxリクエストはかなり一般的です。
$.ajax({
url: o.url,
type: 'post',
contentType: "application/x-www-form-urlencoded",
data: '{"method":"getStates", "program":"EXPLORE"}',
success: function (data, status) {
console.log("Success!!");
console.log(data);
console.log(status);
},
error: function (xhr, desc, err) {
console.log(xhr);
console.log("Desc: " + desc + "\nErr:" + err);
}
});
これはSafariでは問題なく動作するようです。Firefox 3.5では、REQUEST_TYPE
サーバー上のは常に「OPTIONS」であり、$ _ POSTデータは表示されません。Apacheはリクエストをタイプ「OPTIONS」として記録します。
::1 - - [08/Jul/2009:11:43:27 -0500] "OPTIONS sitecodes.php HTTP/1.1" 200 46
このajax呼び出しがSafariでは機能するがFirefoxでは機能しないのはなぜですか。また、Firefox用に修正するにはどうすればよいですか。
応答ヘッダー 日付:2009年7月8日水曜日21:22:17 GMT サーバー:Apache / 2.0.59(Unix)PHP / 5.2.6 DAV / 2 X-Powered-By:PHP / 5.2.6 コンテンツの長さ46 キープアライブタイムアウト= 15、最大= 100 接続キープアライブ Content-Type text / html リクエストヘッダー ホスト注文書:8888 User-Agent Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1)Gecko / 20090624 Firefox / 3.5 text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8を受け入れます Accept-Language en-us、en; q = 0.5 Accept-Encoding gzip、deflate Accept-Charset ISO-8859-1、utf-8; q = 0.7、*; q = 0.7 キープアライブ300 接続キープアライブ Origin http://ux.inetu.act.org アクセス制御要求メソッドPOST Access-Control-Request-Headers x-requested-with
Firebugの出力の画像を次に示します。