我正在构建一个配置文件 Web 编辑器,它允许用户在文本区域中编辑设置,将内容转换为 Blob 文件,然后将数据 POST 到远程 API。由于某种原因,它附加了一个随机回调参数,但我不知道它来自哪里......
http://ipaddr:8080/compile?callback=jQuery341029448751790349491588432312011&=1588432312012
代码如下。如果有人能指出我正确的方向,我将不胜感激。
<script>
$(document).ready(function() {
$('#btnCompile').click(function(event) {
// Convert TextArea contents to a Blob file
var configText = $('#configuration').val();
configText = configText.replace(/\n/g, "\r\n"); // retain line breaks
var configFile = new Blob([configText], { type: "text/plain" });
var documentData = new FormData();
documentData.append('file', configFile, "configuration.cpp");
$.ajax({
url: "http://ipaddr:8080/compile",
method: "POST",
data: documentData,
dataType: 'jsonp',
crossDomain: true,
cache: false,
contentType: false,
processData: false,
success: function(data, textStatus, jqXHR)
{
alert('success: ' + textStatus);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('error status: ' + textStatus + ' error message: ' + errorThrown);
}
});
});
});
</script>
最佳答案
您说的是dataType: 'jsonp'
,因此您的请求受到 JSONP 的限制(包括作为 GET 请求、将数据放入查询字符串、添加回调参数以及无法设置自定义请求 header )。
如果您不希望这样(并且您的代码的所有内容都表明您不希望这样),请不要使用 JSONP。这是一个可怕的黑客攻击,存在安全风险,已被 CORS 取代。十多年前。
关于javascript - 使用 AJAX 的 POST 文件数据附加未知的 jquery 回调字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61562196/