Php 使用Ajax更改用户密码的问题

Php 使用Ajax更改用户密码的问题,php,jquery,Php,Jquery,在我正在工作的网站上尝试使用Ajax更改用户密码时,我遇到了一个奇怪的问题。基本上,我有一个表单,用户可以在其中输入用户名、旧密码和新密码两次。从那时起,JQuery接管并向PHP页面发出Ajax请求(我尝试了.post和.get,结果相同)。PHP页面执行基本的错误检查(确保所有字段都已填充,新密码匹配,并且新密码满足所有复杂性要求),然后使用simplexml\u load\u file()向web服务发出请求(用VB编写,请求通过URL和URLEXEncoded get参数进行,并返回XM

在我正在工作的网站上尝试使用Ajax更改用户密码时,我遇到了一个奇怪的问题。基本上,我有一个表单,用户可以在其中输入用户名、旧密码和新密码两次。从那时起,JQuery接管并向PHP页面发出Ajax请求(我尝试了.post和.get,结果相同)。PHP页面执行基本的错误检查(确保所有字段都已填充,新密码匹配,并且新密码满足所有复杂性要求),然后使用simplexml\u load\u file()向web服务发出请求(用VB编写,请求通过URL和URLEXEncoded get参数进行,并返回XML)这实际上改变了用户密码

虽然使用不满足复杂性要求的密码发出请求,但从未调用对web服务的请求,Ajax请求工作正常。当发出缺少表单字段的请求时,也会发生同样的情况

当通过手动输入get参数直接访问PHP页面发出请求时,一切都按计划进行

当我尝试使用Ajax发出具有良好密码且所有字段都已填充的请求时,就会出现问题。我收到以下错误:

uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: path-to/jquery-1.6.2.min.js :: <TOP_LEVEL> :: line 18" data: no]

有什么想法吗?

事实上,我认为JSON对象格式是这样的,名称和值都应该被引用

   get("../changeUserPassword.php", { 
        "email": "email", 
        "currentPassword": "currentPassword", 
        "newPassword": "newPassword", 
        "newPasswordRetype": "newPasswordRetype" 
    },

好了,伙计们,我已经解决了这个问题。问题似乎是Web服务发回了某种对象(只包含一个字符串),虽然直接访问JSON看起来很好,但JavaScript无法解析它。我编辑了代码,从每个类似字符串的对象中提取索引0处的数据,一切都很顺利。谢谢大家的帮助

   get("../changeUserPassword.php", { 
        "email": "email", 
        "currentPassword": "currentPassword", 
        "newPassword": "newPassword", 
        "newPasswordRetype": "newPasswordRetype" 
    },