我正在使用jQuery(jquery-1.5.2.min.js)进行ajax调用。服务器接收呼叫。 fiddler显示回复文字明显正确。但回到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 );
}
} );
}
这是我在cherrypy服务器代码中处理呼叫的功能:
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,其中包含以下参数值(如firebug所示):
errorThrown = ""
jqXHR = Object { readyState=0, status=0, statusText="error"}
statusText = "error"
我不知道“错误”这个词的来源。该字符串不会出现在我的服务器代码中。
请注意,即使我正在返回一个JSON字符串,我现在将发送和接收类型设置为“text”,只是为了简化以解决问题。
任何想法为什么我收到此“错误”回复,即使errorThrown为空?是不是我没有正确“初始化”jQuery或jQuery.ajax?
答案 0 :(得分:0)
我的问题和M Katz一样,我的浏览器指向了一个文件:/// c:/temp.html,jquery正在考虑我的跨域请求。但是,将crossDomain属性设置为true无效。我不得不在我的网络项目下移动页面,但是一旦我做了一切,神奇地开始工作。