簡體   English   中英

AJAX不會發布到URL

[英]AJAX won't POST to URL

我正在嘗試構建一個簡單的AJAX腳本,該腳本使用一種形式將參數發送到Tumblr API。

這是當前代碼:

<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)”的注釋時,似乎一切都從表單中獲取,並使用正確的命令進行打印。

您可能會注意到,在xmlhttp.open上的URL上,我已經包含了兩個靜態參數:生成器名稱和應發送到Tumblr API的帖子類型。

我是在w3schools.com上的一個模型上進行了少量修改后制成的。 任何幫助表示贊賞:)

您不能使用xmlhttprequest發布到其他站點,而只能訪問與您正在查看的頁面所在的URL相同的URL。

另請參見跨站點XMLHttpRequest

xmlhttprequest通常不支持跨域請求。

您可能要使用PHP cURL執行類似的任務

這樣您就可以將ajax寫入php文件,

然后將您的cURL發布運行到tumblr.com資源

XMLHttpRequest域限制的一種解決方法是在您的域中創建一個代理頁面,該代理頁面將接收請求並為您進行遠程調用。

例如,如果您使用的是ASP.NET,則xmlhttp對象可以在您的站點上調用AjaxProxy.aspx,並且該頁面可以使用WebClient對象將數據發布到tumblr.com。

如果將參數附加到URL,為什么要使用“ POST”? 您可以改用“ GET”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM