【发布时间】:2012-05-16 03:59:44
【问题描述】:
在this John Resig article 中,他正在使用 javascript 处理字典大小的单词列表,并通过 ajax 从 CDN 加载内容。
加载的单词是用换行符分隔单词的。然后他说跨域失败:
但有一个问题:我们无法从 CDN 加载字典! 由于 CDN 位于另一个服务器(或另一个子域, 就像这里的情况一样)我们受制于浏览器的跨域 禁止此类请求的政策。一切都没有丢失—— 通过对字典文件进行简单的调整,我们可以将其加载到 域。
首先,我们将字典文件中的所有结束行替换为空格。 其次,我们用 JSONP 语句包装整行。因此最终 结果看起来像这样:
dictLoaded('aah aahed aahing aahs aal... zyzzyvas zzz');
这允许我们对文件进行 Ajax 请求并让它像 会期望它 - 同时仍然受益于所有缓存和 由浏览器提供的压缩。
所以,如果我没看错的话,只需在原始内容周围添加他的方法 dictLoaded('original content') 即可导致 ajax 请求不会失败。
真的只需要这样(把它变成一个函数+参数)吗? JSONP为什么能解决跨域访问限制问题?
【问题讨论】:
标签: javascript ajax cross-domain jsonp