AJAX没有发送请求

时间:2014-05-02 06:45:17

标签: javascript jquery ajax

我有以下代码:

$("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调用中做错了什么,但我无法理解。

3 个答案:

答案 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);}    
});