Javascript 在GAE Python中使用XMLHttpRequest()PUT
我目前正试图编写一些Javascript来与我使用XMXMLHttpRequest()在GAE(使用Python)上部署的API交互。我得到一个GET没有问题,但是PUT给了我很多麻烦 有趣的是,我在处理来自测试HTTP站点()的PUT请求时没有任何问题,但是每次尝试使用自己的Javascript代码时,我都会收到一个状态值0。下面是我的GAE和Javascript代码片段 (注意-我必须为此通话使用“put”作为要求。) 任何指导都将不胜感激 GAE(服务器): 以及我的网页中的Javascript:Javascript 在GAE Python中使用XMLHttpRequest()PUT,javascript,python,google-app-engine,xmlhttprequest,put,Javascript,Python,Google App Engine,Xmlhttprequest,Put,我目前正试图编写一些Javascript来与我使用XMXMLHttpRequest()在GAE(使用Python)上部署的API交互。我得到一个GET没有问题,但是PUT给了我很多麻烦 有趣的是,我在处理来自测试HTTP站点()的PUT请求时没有任何问题,但是每次尝试使用自己的Javascript代码时,我都会收到一个状态值0。下面是我的GAE和Javascript代码片段 (注意-我必须为此通话使用“put”作为要求。) 任何指导都将不胜感激 GAE(服务器): 以及我的网页中的Javascr
<script>
window.onload = function()
{
var myRequest = new XMLHttpRequest();
var url = 'http://cs496-assignment3-mastrokn.appspot.com/updatecard';
var param = 'key=5636318331666432';
myRequest.open('put', url);
myRequest.onreadystatechange = function()
{
if ((myRequest.readyState == 4) && (myRequest.status == 200))
{
// var myArr = JSON.parse(myRequst.responseText);
// myFunction(myArr);
document.getElementById("viewCards").innerHTML = myRequest.status;
}
else
{
document.getElementById("viewCards").innerHTML = myRequest.status;
}
}
myRequest.send(param);
}
</script>
window.onload=函数()
{
var myRequest=new XMLHttpRequest();
var url='1〕http://cs496-assignment3-mastrokn.appspot.com/updatecard';
var param='key=56363183166432';
myRequest.open('put',url);
myRequest.onreadystatechange=函数()
{
if((myRequest.readyState==4)和&(myRequest.status==200))
{
//var myArr=JSON.parse(myRequst.responseText);
//myFunction(myArr);
document.getElementById(“viewCards”).innerHTML=myRequest.status;
}
其他的
{
document.getElementById(“viewCards”).innerHTML=myRequest.status;
}
}
myRequest.send(param);
}
首先,您的onreadystatechange()
处理程序应该如下所示:
myRequest.onreadystatechange = function()
{
if (myRequest.readyState == 4) //Don't do anything until the readyState==4
{
if(myRequest.status == 200) //Check for status==200
{
document.getElementById("viewCards").innerHTML = myRequest.status;
}
else //All other status codes
{
document.getElementById("viewCards").innerHTML =
'readyState='
+ myRequest.readyState
+ ' status='
+ myRequest.status
+ ' status text='
+ myRequest.statusText;
}
}
}
然后,从:
如果最终得到一个状态为0且
statusText=null,表示不允许发送请求
表演。它没有发出
要查看出现了什么问题,请检查浏览器中的javascript控制台
,查看是否有错误,例如:
[错误]无法加载XMLHttpRequest
. 起源
访问控制允许原点不允许。
(4.htm,第0行)
当我运行上面的代码并将XMLHttpRequest发送到我自己的本地服务器时,PUT请求成功,状态代码为200
最后,我对您发布的服务器代码表示怀疑,因为我不知道有哪个框架可以从请求处理程序中不返回任何代码,而是返回一些字符串或响应对象。然而,使用其他方法向url发出PUT请求会返回200状态码。这真的是你的服务器代码吗?您使用的是什么框架
myRequest.onreadystatechange = function()
{
if (myRequest.readyState == 4) //Don't do anything until the readyState==4
{
if(myRequest.status == 200) //Check for status==200
{
document.getElementById("viewCards").innerHTML = myRequest.status;
}
else //All other status codes
{
document.getElementById("viewCards").innerHTML =
'readyState='
+ myRequest.readyState
+ ' status='
+ myRequest.status
+ ' status text='
+ myRequest.statusText;
}
}
}