【问题标题】:jQuery ajax call to php script returning "[object Object]"jQuery ajax 调用 php 脚本返回“[object Object]”
【发布时间】:2013-01-15 23:39:16
【问题描述】:

我有一个带有以下代码的 jQuery ajax 调用:

var dataString = 'title=' + title;
alert ('datastring: ' + dataString); // This reports the correct value

$.ajax({
type: 'POST',
url: 'script.php',
data: dataString,
cache: false,
success: function(newTableID) {
    alert ('newTableID: ' + newTableID);
    // Do some stuff with the ID
},
error: function(response) {
    alert('failed: ' + response); 
            // The above displays "failed: [object Object]"
}
});

不管我的 php 脚本中有什么,我仍然得到相同的结果:ajax 调用的错误部分中的警报显示一个消息框,显示“失败:[object Object]”。我什至在 php 脚本中尝试了一个简单的 echo - 我认为 php 脚本根本没有从这个 ajax 调用中运行。

脚本的url正确-js文件和script.php文件在同一个文件夹中。

谁能解释一下我在这里可能遗漏了什么?

谢谢。

【问题讨论】:

  • 我们需要查看 script.php。您确定它与您的 JS 文件位于同一目录中吗?
  • 你有多确定它正在读取 php 脚本?即使它们在同一个文件夹中,也不一定意味着它会读取它。放置完全限定的路径或 uri。

标签: php ajax object


【解决方案1】:

如果您收到失败,那是因为您的script.php 不可用。 您可以尝试使用 console.log(response) 而不是 alert(),您应该可以使用 Firefox 或 Chrome 调试工具查看变量中的内容。

【讨论】:

  • 这就是问题所在。当我将 ajax 调用中的 url 更改为 scripts/script.php 时,它起作用了。我假设这是因为路径应该是相对于运行脚本的文件,而不是 js 脚本代码实际所在的文件......也感谢其他所有人的 cmets/尝试帮助!
【解决方案2】:

error 回调正在传递一个对象,但alert() 只能显示字符串。除了一些神奇的情况,在 JS 中将一个对象变成一个字符串会给你 '[Object object]'。

尝试使用console.log 而不是alert,它会在浏览器的调试控制台中显示对象的结构(通常使用 F12 调用)

在控制台(或者如果您安装Firebug)中还会有一个面板显示网络请求和响应,这可能会让您了解为什么会出现错误。

【讨论】:

    【解决方案3】:

    你必须放置 : 而不是 =

    var dataString = 'title:' + title;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2014-06-07
      • 2020-07-18
      • 2018-06-20
      相关资源
      最近更新 更多