Я написал решение jQuery для отправки формы на сторонний домен. URL третьей стороны принимает формы, отправленные с других доменов, когда форма размещена с обычным HTML. Я не могу этого добиться с помощью jQuery и $ .post.
Пример:
URL отправителя: http ... domain1
URL получателя: https ... domain2
Когда я отправляю форму на domain1.com, используя обычный HTML, все работает нормально. Проблема в том, что когда я использую $ .post (), jQuery выдает ошибку, как только целевой домен использует https. Ie8 выдает ошибку уже, когда URL получателя http ... domain2.
Мой вопрос заключается в том, как я могу использовать jQuery и отправить форму так же, как это делает обычный html. Я хотел бы, чтобы решение работало в ie8 также предпочтительно. Кроме того, я бы предпочел не использовать Access-Control-Allow-Origin: * (установить в качестве заголовка в php на целевом сервере). Есть ли способ использовать jQuery и отправлять формы ajax с тем же результатом, что и обычная HTML-форма?
<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>