如何使用收到的数据= [object Object]?

时间:2014-05-15 16:33:34

标签: jquery ajax

我收到的数据有问题= [对象对象]及其工作原理? 实际上我发送了一个帖子请求,我需要获得将在调试器中看到的浏览器中的代码页,但是我无法以编程方式获取它。

这是代码

$.ajax ({
    url: "https://ua-eshop.oriflame.com/iframe/Consultant/OnlineQuickRegistration.aspx",
    dataType: 'script',
    crossDomain: true,
    type: 'POST',
    data: date,
    async: true,
    complete: function (data, textStatus, jqxhr) {
        var text = data;
        console.log (JSON.stringify (data));

        console.log (data.toString ());

        console.log (data);
    }
});

并从控制台输出

  

{" readyState":4," status":200," statusText":" success"}

     

[object Object]

     

Object {readyState:4,getResponseHeader:function,   getAllResponseHeaders:function,setRequestHeader:function,   overrideMimeType:function ...

     

有很多功能}

这是服务器返回的内容:

<! DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="ctl00_pageHead"> <title>
Online quick registration
</ title>

等等

此页面必须阅读

2 个答案:

答案 0 :(得分:0)

我的问题将通过使用其中任何一个来解决

尝试console.log(data.toSource());

alert(JSON.stringify(data));

答案 1 :(得分:0)

您使用complete代替$.ajax的{​​{1}}选项。

success的第一个参数(你命名为complete)实际上是data个对象。这就是您在所显示的各种日志记录中看到的内容,并且不是您想要的内容。 ( jqXHR是对象[Object object]输出。

此外,.toString()方法在所有complete功能和事件之后运行,而不管它所做的HTTP请求的状态如何。在这种情况下,没有响应数据传递给它,因为它可能在对服务器的错误请求之后运行,这不会产生任何数据。

切换到$.ajax选项(找到它并在$.ajax docs page上阅读)。这仅针对成功请求运行,并且给出的第一个参数是来自服务器的数据。

切换到success后,您需要解决您的请求是否实际上是否正在向服务器发送数据并返回数据。您还需要确定您希望从服务器返回的数据类型(HTML,XML,JSON,纯文本等)并正确设置success(再次,在继续之前阅读docs )。

<强>附录

您的HTTP请求失败的一个原因是dataType没有被调用,重新启动是Same-origin policy。您只能从域中请求与脚本运行位置不同的脚本或jsonp。当你告诉jQuery它是一个脚本时,它会尝试将它放在你的页面中 - 而且由于你所请求的不是脚本,它不能这样做。如果你告诉它“jsonp”,远端必须支持协议并发回一个包含在函数调用中的JSON脚本。显然远端不支持它,只发回HTML。

您实际上是在请求HTML,但甚至可以使用纯文本。不幸的是,同源政策不允许这样做。