gpt4 book ai didi

javascript - 如何防止此 javascript 被评估?

转载 作者:行者123 更新时间:2023-12-02 21:12:09 24 4
gpt4 key购买 nike

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

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"});

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

最佳答案

jQuery.ajax 接受 dataType 参数。明确设置它将会:

  • 设置接受 header
  • 忽略响应的 Content-Type 并将数据解析为您所说的格式。

如果您不设置它,那么 jQuery 将从响应的 Content-Type 推断数据类型。这通常是一件好事!

在本例中,您请求 JavaScript(它将附带 Content-Type: text/javascript 响应 header ),但不希望将其视为 JavaScript。 jQuery 确实支持 "script" 作为数据类型!

设置dataType(为“text”)以覆盖默认处理。

(感谢@freedomn-m发现了这个问题)

关于javascript - 如何防止此 javascript 被评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61063045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com