【发布时间】:2016-02-08 21:15:02
【问题描述】:
我在这里查看了许多类似的问题,但我无法深入了解这个问题。
我已经构建了一个 Web API,如果我使用 curl 将其发布如下:
curl -i -H "Content-Type: application/json" -X POST -d '{"password":"abcd"}' http://<ip>:5000/api/v1.0/state
我的 API 接收到消息和记录:
<Request 'http://<ip>:5000/api/v1.0/state' [POST]>
{u'password': u'abcd'}
192.168.1.100 - - [08/Feb/2016 21:04:32] "POST /api/v1.0/stateHTTP/1.1" 200 -
到目前为止一切顺利......
我已经用以下代码构建了一个网页(我是 web 开发的新手),我用它来发布这个 API:
function myFunction() {
$.ajax({
url: "http://" + document.domain + ":5000/api/v1.0/state",
method: "POST",
dataType:"json",
data: {"password" : "John"},
success: function(data){
alert(data);
}
});
}
调用此函数时,我的 API 清楚地收到了帖子,但没有任何数据:
<Request 'http://<ip>:5000/api/v1.0/state' [POST]>
None
192.168.1.120 - - [08/Feb/2016 21:09:53] "POST /api/v1.0/state HTTP/1.1" 200 -
我尝试过使用 $.post 方法:
$.post(
"http://" + document.domain + ":5000/api/v1.0/state",
JSON.stringify({"password" : "password" }) ,
function(data) {
alert("Response: " + data);
}
);
我得到了同样的结果。
编辑:尝试使用以下代码,如以下答案所示:
$.ajax({
url: "http://" + document.domain + ":5000/api/v1.0/state",
method: "POST",
dataType:"json",
contentType:'application/json',
data: JSON.stringify({"password" : "John"}),
success: function(data){
alert(data);
}
});
我收到一个 OPTIONS API 响应:
192.168.1.120 - - [08/Feb/2016 21:31:28] "OPTIONS /api/v1.0/state HTTP/1.1" 200 -
有什么想法吗?我可以访问服务器,但无法获取任何 JSON 数据。
谢谢!
【问题讨论】:
标签: javascript jquery ajax curl asp.net-web-api