如何防止此 javascript 被评估?

我正在尝试构建一个基于 Web 的代码编辑器,并将 javascript 加载到 textarea 值中,我很偶然地发现该页面正在评估代码。


var url = 'local.js';

var timestamp = new Date().getUTCMilliseconds();

$.get(url, {r:timestamp}, function(data) {

    $("#scriptview").val(data);

    $("#editor").slideDown();

}); 

如何防止 GET 请求评估代码?我直接从本地文件获取源代码。


更新:更改代码以添加数据类型解决了这个问题。我无法正确获得 $.get 语法糖,所以我正在使用 $.ajax


var url = 'local.js';

var timestamp = new Date().getUTCMilliseconds();

$.ajax({url:url, data: {r:timestamp}, success: function(data) {

       $("#scriptview").val(data);

       $("#editor").slideDown();

       return false;

}, dataType: "text"});

我仍然不明白为什么要执行被调用文件中的代码,我没有在脚本标签或任何内容中附加到正文。


慕田峪7331174
浏览 102回答 1
1回答

繁花不似锦

jQuery.ajax接受一个dataType参数。明确设置它会:设置Accept标题忽略Content-Type响应并将数据解析为您所说的格式。如果你不设置它,那么 jQuery 会从Content-Type响应中推断出数据类型。这通常是一件好事!在这种情况下,您正在请求 JavaScript(将带有Content-Type: text/javascript响应标头),但不希望将其视为 JavaScript。jQuery 确实支持"script"作为数据类型!将dataType(to "text") 设置为覆盖默认处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript