jQuery$.post函数未命中服务器?错误响应失败
我正在尝试访问具有内置web服务器的控制处理器。基于编入控制器的特定值,我能够通过使用jQuery或js的内置服务器上的网站触发操作。但是我对jquerypost命令有一个问题。当我使用goggle的REST插件时,一切正常,我成功地得到了响应。有什么想法吗jQuery$.post函数未命中服务器?错误响应失败,jquery,Jquery,我正在尝试访问具有内置web服务器的控制处理器。基于编入控制器的特定值,我能够通过使用jQuery或js的内置服务器上的网站触发操作。但是我对jquerypost命令有一个问题。当我使用goggle的REST插件时,一切正常,我成功地得到了响应。有什么想法吗 function GetVariableValuesByName(name) { $.post("http://10.10.254.11/RPC/", { method: "GetVariableValuesByNa
function GetVariableValuesByName(name) {
$.post("http://10.10.254.11/RPC/", {
method: "GetVariableValuesByName",
param1: name,
encoding: "2"
}).done(function (data) {
data = String(data);
var info = data.responseText;
alert(info);
}).fail(function (data) {
data = String(data);
alert("error " + data)
}).always(function (data) {
data = String(data);
alert("just in case " + data);
});
}
最后一个函数示例假设我已经创建了xmlhttp对象
function GetVariableValuesByName(name) {
$.ajax({
type: "POST",
url: "http://10.10.254.11/RPC/",
data: { method: "GetVariableValueByName", param1: "VOL_BAR", encoding: "2" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
}).fail(function(msg) {
alert("error " + msg)
});
}
function GetVariableValuesByName(name) {
xmlhttp.open("POST","http://10.10.254.11/RPC/",false);
var theString = "method=GetVariableValueByName¶m1=" + name;
xmlhttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(theString);
var wacivar = xmlhttp.responseText;
wacivar = String(wacivar);
wacivar = wacivar.substr(19);
alert(wacivar);
}
您使用的是同源策略,这意味着您可以向另一个域发出AJAX请求,但无法读取响应(这就是您不触发回调的原因)。这里的解决方案是使用(在服务器端向HTTP响应添加额外的头)或(使用JSONP回调生成自定义响应)。我建议您使用CORS,因为它提供了更好的错误处理,而JSONP更像是一种黑客 如果您想使用CORS,请将Wikipedia文章中描述的标题添加到必须跨域的响应中
您要求提供一个解决方案示例,但该解决方案必须在JSONP和CORS的服务器端实现。您如何确认它没有影响服务器?没有响应或响应失败并不一定意味着它没有击中服务器。你有没有尝试查看出站流量?对不起,伙计们,我已经在这个项目上工作了几个星期,我很累。控制器有一个内置的Web服务器,但速度很慢,所以我将我的站点卸载到我办公室周围的apache盒子中。看起来我从apache box运行命令并调用控制器的内置服务器时存在安全问题。有什么想法吗?@RoyJ我们需要一个在堆栈溢出上带有“同源策略[链接]”的横幅。这至少每天出现一次!具体如何实施?目录里有我可以放的文件或东西吗?请原谅我的疏忽您的服务器端语言是什么?php?在php中,您必须为响应设置HTTP头,如这里所述,在控制器上的内置服务器上,我无权更改任何配置文件,也无法在其上运行php。如果需要,我可以添加文本文件,比如apcache文件,但基本上就是这样。它还将从.asp执行服务器端包含。在apache服务器上,它只是一个apache服务器。现在我没有任何额外的安装。对不起,如果我把你和PHP混淆了。据我所知,您的服务器端语言是ASP。下面是如何在ASP中实现的