有一块预先存在的代码看起来不起作用(但我曾经告诉过它)。我已将其简化为简短的AJAX请求(如下)。
$.ajax({
url: "https://{myJspUrl}/page.jsonp",
data: {
param1: '${myJspParam}',
param2: 'hardcodedParam1',
param3: 'hardcodedParam2',
param4: ''
},
dataType: 'jsonp',
type: "GET",
crossDomain: true,
complete: function() { alert("Complete"); },
success: function(singleReturn) { alert("Success"); },
error: function(jqXHR, textStatus, errorThrown) { alert("Error"); }
});
此代码不会生成任何警报。
我尝试删除data
参数并将url
参数更新为https://{myJspUrl}/page.jsonp?param1=${myJspParam}¶m2=hardcodedParam1¶m3=hardcodedParam2¶m4=
,但这会产生相同的结果。
但是,如果我alert
上述URL并在浏览器中转到它,则会毫无错误地下载jsonp文件。
如果我将dataType
更改为json
,则会触发成功和完成功能,但我收到以下消息。
有没有什么方法可以让AJAX在没有看到安全警告的情况下工作? 注意 - 我无法更改浏览器或影响浏览器的安全级别(这些都是通过公司控制的)。