此代码运行正常,将JSON正确发布到另一侧
$.post("/admin/httpaction/verifyCertificate",
{_token: '{{csrf_token()}}', certificationNumber: certificateID},
function(data){
console.debug(data);
alert("posted!");
}, "json");
此代码未正确编码JSON,导致内部服务器错误。它一定是我对JSON编码做错的事情。但是什么?
var verifyObj = {
_token: "{{csrf_token()}}",
certificationNumber: certificateID
}
$.ajax({
url: '/admin/httpaction/verifyCertificate',
dataType: 'json',
type: 'post',
contentType: 'application/json',
data: verifyObj,
processData: false,
success: function( data, textStatus, jQxhr ){
alert("success");
},
error: function( jqXhr, textStatus, errorThrown ){
alert("error " + textStatus + " " + errorThrown );
}
});
答案 0 :(得分:3)
由于您将processData
设置为false
,因此未对verifyObj
进行编码。请参阅$.ajax processData
规范:
processData(默认值:true)
类型:布尔值
默认情况下,数据作为对象传入数据选项 (技术上,除了字符串之外的任何东西)将被处理和 转换为查询字符串,适合默认的内容类型 "应用程序/ X WWW的窗体-urlencoded&#34 ;.如果你想发送一个 DOMDocument或其他未处理的数据将此选项设置为false。
将其设置为true可以解决您的问题。