如何检查我是否正在发送我需要发送的ajax呼叫?

时间:2011-08-17 14:30:43

标签: jquery ajax verification

我正在尝试使用JQuery进行AJAX调用,实际上我有下一个代码:

$('#form-check').click(function(){
        $.ajax({
            url: "http://www.domain.com/user/checkurl/",
            type: "GET",
            data: $(location).attr('pathname').substring(17) + "/" + $('#urlTxt').val(),
            error: function(){
                $('#urlTxt').css('background','#ce2b06');
            },
            success: function(data){
                $('#urlTxt').css('background','#83aa07');
                $('#form-check').css('display','none');
                $('#form-submit').css('display','block');
                $('#result').append(data);
            }
        });
    });

然而,当我查看Firebug时,我没有得到任何我能看到的响应,我只看到正在发送的消息和状态(200 - ok),但没有任何回复,而Ajax调用本身也是“success”子句,除了它不附加数据。我怎么检查这个?或者我错过了什么?

4 个答案:

答案 0 :(得分:0)

如果您使用的是没有任何此类工具的任何其他浏览器,则您始终可以使用Fiddler来显示系统上的所有HTTP流量。

答案 1 :(得分:0)

是跨域请求吗?

如果是跨域请求,您应该尝试设置选项crossDomain:true

检查jQuery API http://api.jquery.com/jQuery.ajax/

答案 2 :(得分:0)

这是一个跨域请求。浏览器默认阻止来自跨域网站的响应。您需要使用jsonp作为数据类型。只需谷歌相同,你可以看到如何使用jquery API完成它。堆栈溢出也存在问题。

在相同的原始策略下,server1.example.com提供的网页通常无法连接到server1.example.com以外的服务器或与之通信。 HTML元素是一个例外。利用元素的开放策略,一些页面使用它们来检索对来自其他来源的动态生成的JSON格式数据进行操作的Javascript代码。此使用模式称为JSONP。

我也不确定你将参数传递给服务器的方式..你的数据字段理想上应该像json对象一样

{
id:"123",
type:"student"
}

理想情况下,您还希望提及您希望收到的响应类型,以便jquery可以正确处理它。

这可以通过设置dataType选项

来完成

dataType:“json”//可以是html,xml等

答案 3 :(得分:-1)

Firebug's Net标签和HTTPFox都可以让您查看客户端和服务器之间的完整流量,包括所有标头。

相关问题