如何从jQuery.get请求获取回复
我有一个页面使用以下内容提交AJAX请求:如何从jQuery.get请求获取回复,jquery,ajax,get,Jquery,Ajax,Get,我有一个页面使用以下内容提交AJAX请求: function oc() { jQuery.get( "http://somewhere.com:5001/ajax/options/", jQuery('#selectform').serialize(), function(data,statusm,xml){ // I got nothing!!! return; } ); } 如果我从地址栏中输入请求手册,事情就会正常进行。当我
function oc()
{
jQuery.get(
"http://somewhere.com:5001/ajax/options/",
jQuery('#selectform').serialize(),
function(data,statusm,xml){
// I got nothing!!!
return;
}
);
}
如果我从地址栏中输入请求手册,事情就会正常进行。当我从JS发出请求时,我可以通过日志看到服务器端工作正常,但在回调中,我似乎无法获得回复的内容
我做错了什么?你可能看到的是踢进。这是一种浏览器安全功能,用于防止跨站点脚本攻击,即使在不同端口上访问相同的域/主机,也被视为在“不同的域”上。在展示什么是允许的/不允许的方面做得很好 您还可以使用Chrome中的
--disable web security
命令行开关对此进行测试,然后您的脚本应该可以工作……这不是解决方案,只是帮助确认问题
简而言之,您需要向相同的域或主机和端口发出请求,否则它将被阻止。此规则的例外情况是使用,它主要用于此目的。你可以找到一些像样的例子,你可能看到的是踢腿。这是一种浏览器安全功能,用于防止跨站点脚本攻击,即使在不同端口上访问相同的域/主机,也被视为在“不同的域”上。在展示什么是允许的/不允许的方面做得很好 您还可以使用Chrome中的
--disable web security
命令行开关对此进行测试,然后您的脚本应该可以工作……这不是解决方案,只是帮助确认问题
简而言之,您需要向相同的域或主机和端口发出请求,否则它将被阻止。此规则的例外情况是使用,它主要用于此目的。您可以找到一些不错的示例,并尝试在$.ajax中使用error函数
$.ajax({
url: "http://somewhere.com:5001/ajax/options/",
data: jQuery('#selectform').serialize(),
success: function(data,statusm,xml){
// I got nothing!!!
return;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// do something
}
});
尝试在$.ajax中使用错误函数
$.ajax({
url: "http://somewhere.com:5001/ajax/options/",
data: jQuery('#selectform').serialize(),
success: function(data,statusm,xml){
// I got nothing!!!
return;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// do something
}
});
@Matthew-你会在同一版本中看到这种行为,它不是为了保护服务器,而是为了保护客户端,即阻止响应。@Matthew-我只是在这里运行了一个测试来确认(这在Chrome 6中),服务器确实被击中,数据响应为空,即使服务器确实发送了响应…这是阻止响应的策略。我之前的评论是准确的,至少在Firefox/Chrome和IE中是这样。@BCS-这有什么原因必须在不同的端口上吗?:)@BCS-页面从哪个URL运行?只是
localhost/
,例如端口80?@BCS-啊,是的,这是一个问题,是您专门运行的,还是一个通用的客户端文件,还是…@Matthew-您会在同一个原始问题中看到这种行为,它不是用来保护服务器的,它是用来保护客户端的,也就是说,阻止响应。@Matthew-我刚刚在这里运行了一个测试来确认(这是在Chrome 6中),服务器确实被击中,数据响应为空,即使服务器确实发送了响应……这是阻止它的策略。我之前的评论是准确的,至少在Firefox/Chrome和IE中是这样。@BCS-这有什么原因必须在不同的端口上吗?:)@BCS-页面从哪个URL运行?只是localhost/
,例如端口80?@BCS-啊,是的,这会是个问题,是您专门运行的,还是通用的客户端文件,还是。。。。?