挨拶すべて、"アクセスが拒否されました。" jQueryの.ajaxFormを使用してIE8のエラー()
私はAJAXの初心者だし、私はjQueryの1.4.4を使用してsame origin policy保護に問題があるとjquery.form.js AJAXプラグインしていますに。
私はAJAXの連絡先フォームを持っています。訪問者が「www」と入力する前に訪問者が書いている限り、正常に動作します。しかし、私のサイト(wwwを使用していない)に移動すると、URLは引き続きOKを解決しますが、URLは私のAJAXフォームで使用するものと一致しません。 Chromeでは、コンソールエラーが発生します。
"XMLHttpRequestはhttp://www.example.com/をロードできません。http://example.comはAccess-Control-Allow-Originによって許可されていません。
IE8では「アクセスが拒否されました」と表示されます。だから、URLが "www"の有無にかかわらず解決するにもかかわらず、私のAJAXフォームは、訪問者が "www"で始まらなければ動作しません。 http://example.com(「www」なし)に投稿するようにAJAXフォームコードを変更した場合、訪問者がwww.example.comにナビゲートすると機能しません。どのように私のコードをどちらの条件にも対応させる方法について考えることはできません。これは、JQueryを使用するかどうかにかかわらず、誰もがAJAXを使用している人に遭遇するという問題でなければなりません。だから私は明らかな何かを見逃すはずです。誰かが私にこのことを教えてもらえますか?私のテストコードは以下の通りです。
おかげで、
Northk
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ajaxForm Error Test</title>
<script src="http://www.example.com/js/jquery-1.4.4.min.js"></script>
<script src="http://www.example.com/js/jquery.form.js"></script>
</head>
<body>
<form id="contact-form" method="post" action="http://this-url-wont-be-used.com/">
<a href="#" id="contact-button">SEND</a>
</form>
<script>
//
// hook up the form to ajax
//
$('#contact-form').ajaxForm({
url: 'http://www.example.com/', // forcing the URL doesn't seem to help!
success: function(data) {
alert(data);
},
dataType: 'html'
});
//
// make the SEND link behave as if it's a submit button
//
$('#contact-button').click(function(e) {
$('#contact-form').submit();
});
</script>
</body>
</html>
私はブラウザがwwwを別のドメインとして扱っているため、クロスドメイン要求が推奨されているように相対パスを使ってみることはできません。他のオプションはJavaScriptを使用してベースURLを取得し、Ajaxリクエストを設定します。 – Luis