【发布时间】:2013-10-08 10:01:35
【问题描述】:
我正在尝试使用 AJAX 加载以下脚本:
$.ajax({
type: 'POST',
async: false,
url: ROOT + 'Ajax',
data: {
call: 'this->loadJs',
script: 'Activity2/js/buying.js'
},
dataType: "script",
success: function(data) {
alert('test')
}
})
但我不断收到parseerror。查看响应后,我可以看到脚本仅部分加载。
我认为这与此处定义的 loadJs 方法 (PHP) 中的 filesize 有关:
public function loadJs($script) // For our new $.getScript stuff.
{
$fh = fopen(WROOT . Vs . $script, 'r');
$contents = fread($fh, filesize(Vs . $script));
header('Content-Type: application/javascript');
return $contents;
}
但是文件大小是正确的,所以我迷路了。
是什么导致 ajax 仅部分加载我的脚本。
顺便说一句,以下工作,但我不想使用它,因为它暴露了我的太多:
$.ajax({
url: 'http://www.view.com/public_html/views/Activity2/js/buying.js',
dataType: "script",
success: function(){
alert('test')
}
});
【问题讨论】:
-
您使用 ajax 调用这样做有什么原因吗?
$.getScript()专门用于加载脚本.... api.jquery.com/jQuery.getScript -
@Archer 因为它暴露了我太多的路径。
-
content-type : text/javascript? -
@mikakun 它仍然在中途切断脚本:(
-
我看不到使用
$.ajax会暴露什么额外的东西?上传后,您的所有代码都可以免费使用。
标签: php jquery ajax lazy-loading getscript