フォームをサードパーティのドメインに送信するためのjQueryソリューションを作成しました。サードパーティのURLは、フォームが通常のhtmlで投稿されたときに他のドメインから投稿されたフォームを受け入れます。 jQueryと$ .postでこれを行うことはできません。Post jQuery ajaxは、同じ起点のポリシーを破る通常のhtmlフォームと同じ方法で作成します
例: 送信者URL:HTTP ... DOMAIN1 受信URL:httpsを...ドメイン2
私は通常のHTMLのすべてを使用してdomain1.comにフォームを送信すると正常に動作します。問題は、$ .post()を使用すると、ターゲットドメインがhttpsを使用しているとすぐにjQueryがエラーをスローします。受信者のURLがhttp ... domain2の場合、Ie8は既にエラーをスローします。
私の質問は、jQueryを使用して、通常のhtmlと同じ方法でフォームを送信する方法です。私はie8で動作するように、ソリューションを好むでしょう。また、私はAccess-Control-Allow-Origin:*(ターゲットサーバ上のPHPのヘッダーとして設定)を使用したくないと思います。 jQueryを使用して、通常のHTMLフォームと同じ結果を持つajaxフォームを送信する方法はありますか?
<html lang='sv'>
<head>
<script src='js/jquery-1.7.1.min.js'></script>
<script>
$(function()
{
$.post(
// works in all browsers but ie8 with Access-Control-Allow-Origin: *
"http...domain2/?ts="+new Date().getMilliseconds(),
// breaks in chrome, didn't test others
//"https...domain2/?ts="+new Date().getMilliseconds(),
{ a:"a", b:"b" },
function(responseText)
{
alert(responseText);
},
"json"
//"html" // seems to get same result as when using "json" above
).done(function(){
alert("done!");
}).error(function(event){
alert("error!");
});
});
</script>
</head>
<body>
<!-- working form -->
<form action="https...domain2/?ts=whatever" method="post">
<textarea name="a">a</textarea>
<textarea name="b">b</textarea>
<input type="submit">
</form>
</body>
</html>
おかげでより多くの詳細については
は、しかし、PHPは、この場合、オプションではありませんでした。私はなぜajaxがhtml-postと同じ権限を持つことが許されないのか理解できませんでした。いずれにしても、私は単純なhtmlソリューションを使いました。 –