我有这个js代码
function sendJSon(){
var user = {"user_name" : $("#my_input_field").val()};
$.ajax({
url: 'http://localhost:9000/myAction',
type: 'POST',
data: JSON.stringify(user),
success: function(result) {
$("#my_res_div").html(result);
},
error: function(){
alert("error");
}
});
}
在传递给应用程序时效果很好,然后按照它的意图继续成功 但是经过多次尝试后我达到了这个目标,因为在开始时(浏览这个网站)我找到了答案,建议为JSon请求指定内容类型(application / json或text / javascript)和数据类型(json)。
我想知道如果我指定内容或数据类型,为什么会得到XMLHttpRequest cannot load http://localhost:9000/myAction. Invalid HTTP status code 404
这是路线文件中的路线
POST /myAction Application.jsonRequest
答案 0 :(得分:1)
您引用的错误基本上意味着对POST请求的响应是404状态,这不是POST请求的预期值(您发送内容,服务器不合逻辑)说它无法找到内容。
通常不需要为dataType
指定$.ajax
字段,因为它会尝试自己弄清楚它。但是,这个字段不应该引起问题,因为它是关于解析响应数据的,它只在收到响应后发生,而错误代码首先表示错误的响应(意味着它永远不会解析)。 / p>
contentType
的{{1}}字段对请求更为重要。它是一个两部分字符串,指定要发送的内容类型和用于编码内容的字符集。因此,将其设置为您命名的任一值的问题在于缺少字符编码。另一个问题是您在指定数据类型的同时不提供该格式的数据。您明确地对内容进行了字符串化,这意味着它不会成为JSON数据。