为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止此 javascript 被评估?

如何防止此 javascript 被评估?

慕田峪7331174 2022-06-16 15:24:46
我正在尝试构建一个基于 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 语法糖,所以我正在使用 $.ajaxvar 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"});我仍然不明白为什么要执行被调用文件中的代码,我没有在脚本标签或任何内容中附加到正文。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

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

  • 设置Accept标题

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

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

在这种情况下,您正在请求 JavaScript(将带有Content-Type: text/javascript响应标头),但不希望将其视为 JavaScript。jQuery 确实支持"script"作为数据类型!

dataType(to "text") 设置为覆盖默认处理。


查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号