使用 Ajax 的 jQuery 中的错误
Posted
技术标签:
【中文标题】使用 Ajax 的 jQuery 中的错误【英文标题】:Error in jQuery with Ajax 【发布时间】:2013-05-06 17:27:01 【问题描述】:我正在使用 jquery Ajax 以下代码行,只有 Firefox 和 Blackbarry 浏览器存在问题
职位:
navigator.geolocation.getCurrentPosition(currentPosition);
function currentPosition(res)
window.res = res;
代码:
var postion = window.res;
$.ajax(
url: 'SendLocation',
type: 'post',
data: position, // Position is navigator.geolocation.getCurrentPosition
success: function(res)
alert(res);
);
错误:
NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
阅读FormData Object not submitting via jQuery AJAX call 帖子后,我添加了以下代码行,代码变为 处理数据:假, 内容类型:假,
更新代码:
$.ajax(
url: 'SendLocation',
type: 'post',
data: position, // Position is navigator.geolocation.getCurrentPosition
processData: false, //Added this line
contentType: false, //Added this line
success: function(res)
alert(res);
);
没有错误发生,但代码也停止工作。
【问题讨论】:
你的意思是,position = navigator.geolocation.getCurrentPosition
?因为那将是无效的。 position = navigator.geolocation.getCurrentPosition(...)
也将无效。
你知道如何定位,而且它是异步的?
@adeneo 我正在使用 gerolocation 异步。
@KevinB 我已经更新了问题以供您理解,但这只是一个示例。
发生的事情是 jQuery 试图将对象转换为字符串。您需要将所述对象转换为您的服务器端系统所期望的字符串,以便 jQuery 不会尝试为您执行此操作。您不能通过 ajax 按原样发送 javascript 对象,它必须转换为字符串格式。 jQuery 可以使用简单的对象为您处理这种转换,但对于更复杂的对象,它就不行了。
【参考方案1】:
我建议在您的位置变量上使用 serialize(),因为它会尝试发送地理定位 DOM 对象..
https://developer.mozilla.org/en-US/docs/DOM/window.navigator.geolocation.getCurrentPosition
如果您使用 firebug 并检查您的 POST 变量,则会出现此错误。
【讨论】:
No 不能使用 serailize 因为我需要 NodeJS 服务器上的对象。 @ArhamAliQureshi 您不能将任意 javascript 对象发送到服务器。也许您应该更具体地说明您要做什么。 @AaronDufour。我正在使用 NodeJS 服务器,它是一个了解 javaScript 对象的 javaScript 服务器。在 Chrome 和 IE10 中运行良好 @ArhamAliQureshi 重复自己真的不会让你到任何地方。 您实际上对对象做了什么? 我的猜测是它正在使用的浏览器在其toString
方法中序列化该对象。【参考方案2】:
感谢所有猜测帮助我,但在这里让我告诉你我做了什么。 我只是从 position 对象中选择我需要的值并创建一个新对象并用我从 position 获得的数据填充它并将其发布到服务器,现在它工作正常谢谢..!
【讨论】:
以上是关于使用 Ajax 的 jQuery 中的错误的主要内容,如果未能解决你的问题,请参考以下文章
我电脑上使用jquery中的ajax无法请求到html,显示404错误。
如何使用 jQuery/AJAX 访问 views.py 中的变量?
统一处理jquery ajax请求过程中的异常错误信息的机制