总是调用jQuery aspx错误函数,即使有明显有效的返回数据

时间:2011-04-11 18:14:55

标签: jquery ajax cherrypy

我正在使用jQuery(jquery-1.5.2.min.js)进行调用。服务器接收呼叫。 显示回复文字明显正确。但回到javascript我的错误:调用函数而不是我的成功:函数,错误函数的参数数据并没有提供太多关于问题的线索。

这是我进行初始调用的功能:

function SelectCBGAtClickedPoint()
{
    $.ajax( {
        type: "GET",
        dataType: "text",
        url: "http://localhost/ajax/SelectCBGAtPoint/1/2",
        success:
            function( msg )
            {
                alert( "success: " + msg );
            },
        error:
            function( jqXHR, textStatus, errorThrown )
            {
                alert( "error: " + jqXHR + textStatus + errorThrown );
            }
    } );
}

这是我在服务器代码中处理呼叫的功能:

def ajax( ajax, *args ):
    with lock:
        print "ajax request received: " + str( args )

        cherrypy.response.headers[ "Content-Type" ] = "application/text"

        return "{ x: 0 }"

Cherrypy是一个奇怪的野兽,我认为问题必须在那里。但正如我所说,我看到两个查询都出来了,而且回复在Fiddler中。以下是Fiddler作为回应原始视图的内容:

HTTP/1.1 200 OK
Date: Mon, 11 Apr 2011 17:49:25 GMT
Content-Length: 8
Content-Type: application/text
Server: CherryPy/3.2.0

{ x: 0 }

看起来不错,但是后来在javascript中,我进入了错误:function,其中包含以下参数值(如所示):

errorThrown = ""
jqXHR = Object { readyState=0, status=0, statusText="error"}
statusText = "error"

我不知道“错误”这个词的来源。该字符串不会出现在我的服务器代码中。

请注意,即使我正在返回一个JSON字符串,我现在将发送和接收类型设置为“text”,只是为了简化以解决问题。

任何想法为什么我收到此“错误”回复,即使errorThrown为空?是不是我没有正确“初始化”jQuery或jQuery.ajax?

1 个答案:

答案 0 :(得分:0)

我的问题和M Katz一样,我的浏览器指向了一个文件:/// c:/temp.html,jquery正在考虑我的跨域请求。但是,将crossDomain属性设置为true无效。我不得不在我的网络项目下移动页面,但是一旦我做了一切,神奇地开始工作。