如何处理接收到的数据=[object object]



我收到的data=[object object]有问题,它是如何工作的?实际上,我发送了一个post请求,我需要获得浏览器中的代码页,你可以在调试器中看到它,但我无法通过编程获得它。

这是代码

$.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"}

[对象对象]

对象{readyState:4,getResponseHeader:函数,getAllResponseHeaders:function,setRequestHeader:function,overrideMimeType:函数。。。

有许多功能}

这是服务器返回的内容:

<! 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>

等等

此页面是读取所必需的

我认为您的问题将通过使用以下中的任何一个来解决

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

alert(JSON.stringify(data));

您将complete选项用于$.ajax而不是success

complete(您命名为data(的第一个参数实际上是jqXHR对象。这就是您在所展示的各种形式的日志中看到的,并且是而不是您想要的。([Object object]是对象的.toString()的输出(。

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

切换到success选项(在$.ajax文档页面上找到并阅读(。这只在成功的请求中运行,并且它给出的第一个参数是来自服务器的数据。

切换到success后,您需要确定您的请求是否真的到达了服务器,并且数据是否被返回。您还需要确定您期望从服务器返回的数据类型(HTML、XML、JSON、纯文本等(,并适当地设置dataType(同样,在继续操作之前阅读文档(。

附录

HTTP请求可能失败,导致success未被调用的一个原因是同源策略。您只能从与脚本运行位置不同的域请求脚本或jsonp。当你告诉jQuery这是一个脚本时,它会尝试为你把它放在你的页面中——因为你请求的不是脚本,所以它不能这样做。如果您告诉它"jsonp",那么远端必须支持该协议,并在函数调用中返回一个包含JSON的脚本。显然远端不支持它,只发送回HTML。

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

相关内容

  • 没有找到相关文章

最新更新