我有以下代码:
$("form").submit(function()
{
//Checking data here:
$("input").each(function(i, obj)
{
});
alert(JSON.stringify($(this).serializeArray()));
var url='http://127.0.0.1:1337/receive';
$.ajax({
url: url,
type: 'POST',
contentType:'application/json',
data: JSON.stringify($(this).serializeArray()),
dataType:'json'
});
});
在我提交表单后,我收到了一个带有json字符串的JavaScript警报,因此这是正确的(在我的服务器上我只记录它所以它并不重要)。如果我尝试从邮递员发送请求到相同的链接它工作,它会记录它。
我认为我在ajax调用中做错了什么,但我无法理解。
答案 0 :(得分:0)
尝试以下代码。添加成功和错误处理程序以获取更多详细信息
$("form").submit(function()
{
//Checking data here:
$("input").each(function(i, obj)
{
});
alert(JSON.stringify($(this).serializeArray()));
var url='http://127.0.0.1:1337/receive';
$.ajax({
url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify($(this).serializeArray()),
dataType:'json',
success : function(response) {
alert("success");
},
error: function (xhr, status, error) {
alert(error);
}
});
});
答案 1 :(得分:0)
data:{list:JSON.stringify($(this).serializeArray())}
答案 2 :(得分:0)
来自Jquery文档: 由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功从其他域,子域或协议中检索数据。
crossDomain属性只是强制请求是跨域的。 dataType是jsonp,并且在url中添加了一个参数。
$.ajax({
url:'http://127.0.0.1:1337/receive',
data:{ apikey: 'secret-key-or-any-other-parameter-in-json-format' },
dataType:'jsonp',
crossDomain: 'true',
success:function (data) {alert(data.first_name);}
});