AJAX не будет отправлять на URL - PullRequest
1 голос
/ 13 ноября 2009

Я пытаюсь создать простой AJAX-скрипт, который использует форму для отправки параметров в API Tumblr.

Это текущий код:

<body>
<script type="text/javascript">
function ajaxFunction()
{
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var title = document.getElementById("title").value;
var body = document.getElementById("body").value;
var str = "&email=" + email + "&password=" + password + "&title=" + title + "&body=" + body;
//document.write(str);
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.getElementById("suc").value.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","http://www.tumblr.com/api/write?generator=TumblWave&type=regular",true);
xmlhttp.send(str);
}
</script>
<form id="myForm">
Name: <input type="text" id="email" />
Password: <input type="password" id="password" />
Title: <input type="text" id="title" />
Body: <input type="text" id="body" />
<input type="submit" onclick="ajaxFunction();" />
<div id="suc"></div>
</form>
</body>
</html> 

Извините за беспорядок.

Каким-то образом XMLHttpRequest, похоже, не проходит, так как ничто никогда не входит в Tumblr. Однако, когда я удаляю комментарии для «document.write (str)», создается впечатление, что все извлекается из форм и печатается с правильными командами.

Вы можете заметить в URL на xmlhttp.open, что я уже включил два статических параметра: имя генератора и тип сообщения, которое следует отправлять в API Tumblr.

Я сделал это после модели на w3schools.com с небольшими изменениями. Любая помощь приветствуется:)

Ответы [ 4 ]

4 голосов
/ 13 ноября 2009

Вы не можете использовать xmlhttprequest для публикации на другом сайте, вы можете перейти только по тому же URL-адресу, на котором размещена просматриваемая страница.

См. Также Межсайтовый XMLHttpRequest

1 голос
/ 13 ноября 2009

Обходной путь к ограничению домена XMLHttpRequest заключается в создании прокси-страницы в вашем домене, которая получит запрос и сделает для вас удаленный вызов.

Например, если вы используете ASP.NET, ваш объект xmlhttp может вызвать AjaxProxy.aspx на вашем сайте, и эта страница может использовать объект WebClient для публикации данных на tumblr.com.

1 голос
/ 13 ноября 2009

xmlhttprequest обычно не поддерживает междоменные запросы.

Возможно, вы захотите использовать PHP cURL для такой задачи, как

так что вы получите свой ajax для записи в файл php, который будет

затем запустите свою запись cURL на ресурсе tumblr.com

0 голосов
/ 13 ноября 2009

Почему вы используете «POST», если добавляете параметры в URL? Вместо этого вы можете использовать «GET».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...