我正在尝试使用以下代码将数据发布到http://requestb.in/。但是,我继续得到HTTP / 1.1 404 Not Found。我只是想在下面的代码中看到我的数据的JSON格式。
感谢任何可能导致我找到解决方案的想法。我正在使用Fiddler找到我在第一段中提到的错误。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PostJSON.aspx.cs" Inherits="SimpleJSONPost.PostJSON" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#button1").click(function () {
$.ajax({
type: "POST",
url: "http://requestb.in/1g8nene1",
contentType: "application/json; charset=utf-8",
data: JSON.Stringify({"name": "John"}),
dataType: "json",
success: function (msg) { alert("Post Succeeded: " + msg) },
error: function (msg) { alert("Post Failed: " + msg) }
});
});
});
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="button1" runat="server" Text="PostJSON" />
</div>
</form>
</body>
</html>
答案 0 :(得分:3)
可能出现的问题:
404可能是因为RequestBin过期了网址,而您的网址可能已过期。
另一个问题可能是JavaScript,它是JSON.stringify
而不是JSON.Stringify
。
RequestBin返回text/plain
,您正在使用dataType: "json"
。您应该使用dataType: "text"
来测试RequestBin。
RequestBin不允许导致CORS: XMLHttpRequest无法加载&#39; ...&#39; No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; ...&#39;因此不允许访问。
即使你&#34;修复&#34;第1项,第2项和第3项,第4项不会让它发挥作用。
可能的解决方案是使用PutsReq,它允许CORS,您可以将响应配置为有效的JSON。
示例PustReq Response Builder:
response.status = 200;
response.headers['Content-Type'] = 'application/json';
response.body = { 'msg': 'ok' };
您的Ajax调用(使用有效的PutsReq令牌替换您的令牌):
$.ajax({
type: "POST",
url: "https://putsreq.herokuapp.com/<YOUR-TOKEN>",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ "name": "John" }),
dataType: "json",
success: function (msg) { alert("Post Succeeded: " + msg) },
error: function (msg) { alert("Post Failed: " + msg) }
});
答案 1 :(得分:0)
我不知道这是否与您的问题有关,但为什么要“串化”您发送的数据?
$。AJAX({ 类型:“POST”, 网址:“http://requestb.in/1g8nene1”, contentType:“application / json; charset = utf-8”, 数据:{“name”:“John”}, dataType:“json”, success:function(msg){alert(“Post Succeeded:”+ msg)}, 错误:function(msg){alert(“Post Failed:”+ msg)} });
将它作为普通对象发送,jQuery将处理所有事情。我已经在本地测试中更改了它以查看您的问题,并且响应状态对我来说是200。