Play1.2.7中对控制器的Ajax/Json请求无法指定内容类型
我有这个js代码Play1.2.7中对控制器的Ajax/Json请求无法指定内容类型,json,playframework-1.x,Json,Playframework 1.x,我有这个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) {
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)的答案 我想知道为什么我无法加载
XMLHttpRequesthttp://localhost:9000/myAction. 如果指定内容或数据类型,则HTTP状态代码404无效。
这是路由文件中的路由行
POST /myAction Application.jsonRequest
您引用的错误基本上意味着对POST请求的响应是404状态,这不是POST请求的预期值(您正在发送内容,服务器说找不到该内容是不合逻辑的)
通常不需要为$.ajax
指定数据类型
字段,因为它会尝试自己找出答案。但是,此字段不应该引起问题,因为它是关于解析响应数据的,这只发生在收到响应之后,错误代码首先指示错误响应(意味着它永远不会进行解析)
$的contentType
字段。ajax
对于请求更为重要。它是一个由两部分组成的字符串,指定要发送的内容类型和用于编码内容的字符集。因此,将其设置为您命名的任一值的问题在于缺少字符编码。另一个问题是,您在指定数据类型的同时,没有以该格式提供数据。您正在显式地字符串化您的内容,这意味着它将不是JSON数据。谢谢您,先生。你教了我一些有趣的东西,还指出了我的一个重大错误/误解。