该代码可以正常运行,将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 );
}
});
最佳答案
由于将processData
设置为false
,因此verifyObj
不被编码。请参见$.ajax processData
规范:
processData(默认值:true)
类型:布尔值
默认情况下,数据作为对象传递到data选项
(从技术上讲,除了字符串以外的任何东西)都将被处理,
转换为适合默认内容类型的查询字符串
“应用程序/ x-www-form-urlencoded”。如果您想发送
DOMDocument或其他未处理的数据,请将此选项设置为false。
将其设置为true应该可以解决您的问题。