【发布时间】:2011-06-17 03:54:33
【问题描述】:
我正在寻找一种从跨域“AJAX”请求中返回单个 JSON/JSONP 字符串的方法。我不想请求字符串并让 JQuery 自动将其作为通用对象返回,而是希望在转换发生之前保留字符串。这里的目标是自己解析它,这样我就可以将它直接转化为某种类型的新对象(例如 Person 对象)。
所以,为了清楚起见,我不希望在幕后进行任何字符串到通用对象的转换,这必须使用不同的域。
这是我想做的一个非工作示例:
$.ajax({
type: 'GET',
url: 'http://www.someOtherDomain.com/GetPerson',
dataType: 'text',
success: parseToPerson
});
function parseToPerson( textToParse ) {
// I think I can do this part, I just want to get it working up to this point
}
如果 JQuery 不参与解决方案,我非常高兴,只要它有效。不过,我更喜欢使用 JQuery。根据我的阅读,用于获取 JSONP 数据(动态创建脚本元素)的 javascript 技术可能会起作用,但我似乎无法让它为我工作。我控制我从中请求数据的域,如果我将 AJAX 调用中的 dataType 更改为“JSONP”,我可以获取数据,所以我知道这是有效的。
【问题讨论】:
-
我设法让 JSONP“请求”在不使用 JQuery 的情况下工作。该方法包括添加一个脚本标签,其中 src 指向发回数据的 url。除非我使用 type="application/x-javascript",否则它对我不起作用。这会立即运行它,因此在我可以对其进行任何操作之前,将数据创建为通用对象。
标签: javascript jquery ajax jsonp