在我的下面的代码中,它成功返回一个对象,当输出到控制台时,该对象以如下内容开头:
{readyState: 4,
getResponseHeader: ƒ,
getAllResponseHeaders: ƒ,
setRequestHeader: ƒ,
overrideMimeType: ƒ,
…}
但是当我使用开发者控制台>网络标签,我看到了人们期望的真实数据:
如何从此对象中获取数据?不知道我做错了什么。
以下是代码:
get_netsuite: function (cart) {
//console.log(JSON.stringify(cart.result, null, 4));
url = netsuite_server + '/sbe-dev-elbrus/services/ProfileExtension.Service.ss?c=854511&n=2';
url = 'https://checkout.na3.netsuite.com/c.854511/sbe-dev-elbrus/services/ProfileExtension.Service.ss?callback=?';
var data = { 'c': '854511', 'n': 2 };
jQuery.ajax({url: url, async: false, type: 'GET', data: data, dataType: 'jsonp',
complete: function (resp) {
console.log('complete');
tempdata = resp;
console.log(resp);
if (resp.isLoggedIn) {
App.globals.logged_in = true;
jQuery('.signin-main #sign_in').hide();
jQuery('.signin-main #sign_out').css('display', 'inline-block');
// jQuery('.widget_nav_menu').find('.sign-out, .my-account').css('display', 'inline-block');
} else {
App.globals.logged_in = false;
jQuery('.signin-main #sign_out').hide();
jQuery('.signin-main #sign_in').css('display', 'inline-block');
}
App.globals.frequency_tbl = cart.header.frequency_tbl;
App.cart.display_cart(cart);
}
});
},
以下是它的网址:
答案 0 :(得分:0)
您尝试将该URL作为JSONP访问,但它不是JSONP端点。
Your URL actuallt返回一个简单的JSON字符串。
因此,将dataType
更改为'json'
。此外,您应该使用success
回调而不是complete
。
当然,使用json
数据类型时,您必须处理CORS问题。
下面的演示。
var url = 'https://checkout.na3.netsuite.com/c.854511/sbe-dev-elbrus/services/ProfileExtension.Service.ss?callback=TEST?';
url = 'https://cors-anywhere.herokuapp.com/'+url; // for testing purposes only
var data = {'c': '854511', 'n': 2};
jQuery.ajax({
url: url,
async: false,
type: 'GET',
data: data,
dataType: 'json',
success: function(resp) {
console.log(resp);
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;