【发布时间】:2016-03-10 06:24:50
【问题描述】:
我目前正在尝试编写一些 Javascript 来与我使用 XMXMLHttpRequest() 在 GAE(使用 Python)上部署的 API 进行交互。获取 GET 没有问题,但是 PUT 给我带来了很多麻烦。
有趣的是,我从测试 HTTP 站点 (https://www.hurl.it/) 触摸 PUT 请求没有问题,但是每次尝试使用自己的 Javascript 代码时,我都会收到状态值 0。下面是我的 GAE 和 Javascript 代码的 sn-ps。
(注意 - 我必须为此调用使用“放置”作为要求。)
任何指导将不胜感激!
GAE(服务器):
def put(self):
# Save variables for update
cardkey = self.request.get('key', default_value=None)
ident = self.request.get('ident', default_value=None)
brand = self.request.get('brand', default_value=None)
year = self.request.get('year', default_value=None)
player = self.request.get('player', default_value=None)
# If card key is provided then update card
if cardkey:
# Get card
card_to_update = ndb.Key(db_models.Card, int(cardkey)).get()
if ident:
card_to_update.ident = ident
if brand:
card_to_update.brand = brand
if year:
card_to_update.year = year
if player:
card_to_update.player = player
# Save changes and print update to requester
card_to_update.put()
card_dict_format = card_to_update.to_dict()
self.response.write(json.dumps(card_dict_format))
return
# If card key is not provided send error
else:
self.response.write('key not provided. must provide key for update.')
return
还有我网页上的 Javascript:
<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>
【问题讨论】:
标签: javascript python google-app-engine xmlhttprequest put