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