我有一个用rails和jQuery编写的webapp,它在Firefox中给我一个神秘的AJAX问题。
当我对我的localhost rails服务器发出某个AJAX请求时,jQuery调用请求的错误事件处理程序时没有任何有趣的错误信息,打印到控制台的参数只显示:
[Object { readyState=0, status=0, statusText="error"}, "error", ""]
有趣的是,服务器确实收到请求并声称它成功响应;当然,它应该是服务器端的工作。由于某些原因,HTTPScoop和Wireshark都没有能够在环回接口上嗅探流量。 Firebug没有报告任何响应信息,只是愤怒的红色X.
更有趣的是,我在heroku上有不同的行为。在这种情况下,AJAX请求仍然失败,没有给出有趣的错误信息,firebug报告愤怒的红色X,但服务器甚至从未收到请求。
这似乎与Firefox有关。 Curl能够成功发布请求,Safari和Chrome都可以正常运行应用程序。
问题不是系统性的。我有几个其他模型对象使用相同的模式将自己保存到服务器,它们完美地工作。实际上,如果模型是一个不同的类型:徒手绘制的线而不是段,它可以很好地工作。
对于它的价值,失败请求的POST数据可能类似于:
wall[kind] wall
wall[vertex_values][0][x] -60
wall[vertex_values][0][y] -3
wall[vertex_values][1][x] -55
wall[vertex_values][1][y] 2
wall[vertex_values][2][x] -55
wall[vertex_values][2][y] -1
wall[vertex_values][3][x] -55
wall[vertex_values][3][y] -4
wall%5Bkind%5D=wall&wall%5Bvertex_values%5D%5B0%5D%5Bx%5D=-60&wall%5Bvertex_values%5D%5B0%5D%5By%5D=-3&wall%5Bvertex_values%5D%5B1%5D%5Bx%5D=-55&wall%5Bvertex_values%5D%5B1%5D%5By%5D=2&wall%5Bvertex_values%5D%5B2%5D%5Bx%5D=-55&wall%5Bvertex_values%5D%5B2%5D%5By%5D=-1&wall%5Bvertex_values%5D%5B3%5D%5Bx%5D=-55&wall%5Bvertex_values%5D%5B3%5D%5By%5D=-4
虽然成功的请求如下:
wall[kind] drawing
wall[vertex_values][0][x] -50.0469798657718
wall[vertex_values][0][y] 1.0961968680089402
wall[vertex_values][1][x] -49.77852348993288
wall[vertex_values][1][y] 0.9172259507829903
wall[vertex_values][2][x] -49.51006711409395
wall[vertex_values][2][y] 0.7382550335570386
wall[vertex_values][3][x] -49.331096196868
wall[vertex_values][3][y] 0.6487695749440636
wall[vertex_values][4][x] -49.107382550335565
wall[vertex_values][4][y] 0.604026845637577
wall[vertex_values][5][x] -48.92841163310961
wall[vertex_values][5][y] 0.5592841163310887
wall[vertex_values][6][x] -48.838926174496635
wall[vertex_values][6][y] 0.5592841163310887
wall[vertex_values][7][x] -48.749440715883665
wall[vertex_values][7][y] 0.5592841163310887
wall%5Bkind%5D=drawing&wall%5Bvertex_values%5D%5B0%5D%5Bx%5D=-50.0469798657718&wall%5Bvertex_values%5D%5B0%5D%5By%5D=1.0961968680089402&wall%5Bvertex_values%5D%5B1%5D%5Bx%5D=-49.77852348993288&wall%5Bvertex_values%5D%5B1%5D%5By%5D=0.9172259507829903&wall%5Bvertex_values%5D%5B2%5D%5Bx%5D=-49.51006711409395&wall%5Bvertex_values%5D%5B2%5D%5By%5D=0.7382550335570386&wall%5Bvertex_values%5D%5B3%5D%5Bx%5D=-49.331096196868&wall%5Bvertex_values%5D%5B3%5D%5By%5D=0.6487695749440636&wall%5Bvertex_values%5D%5B4%5D%5Bx%5D=-49.107382550335565&wall%5Bvertex_values%5D%5B4%5D%5By%5D=0.604026845637577&wall%5Bvertex_values%5D%5B5%5D%5Bx%5D=-48.92841163310961&wall%5Bvertex_values%5D%5B5%5D%5By%5D=0.5592841163310887&wall%5Bvertex_values%5D%5B6%5D%5Bx%5D=-48.838926174496635&wall%5Bvertex_values%5D%5B6%5D%5By%5D=0.5592841163310887&wall%5Bvertex_values%5D%5B7%5D%5Bx%5D=-48.749440715883665&wall%5Bvertex_values%5D%5B7%5D%5By%5D=0.5592841163310887
我完全感到困惑。我是否曾在Firefox中遇到过最奇怪的错误,或者我做的事情如此愚蠢,这对我来说是不可思议的?