首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery无法在浏览器中发送IE

jQuery无法在浏览器中发送IE
EN

Stack Overflow用户
提问于 2011-06-03 06:48:20
回答 1查看 799关注 0票数 4

在我正在进行的项目中,我有以下代码块:

代码语言:javascript
复制
if(!validate($(".emailbody input").val())){
    ...
}
else{
    $.get("https://get.request.com/something", {email:encodeURI($(".emailbody input").val())})
    .complete(function(){
        $(".emailbody").append($('<p class="emailsucess">Kiitos! Linkki rekisteröitymisen jatkamiseen on lähetetty sähköpostiisi: '+$(".emailbody input").val()+'</p>'));
        $.post("http://post.request/confirm.php", {"confirm":$(".emailbody input").val()})
        $(".emailbody input").val("");
    });
}

一个简单的get requst将东西放入连接服务的数据库中,然后一个post响应从本地主机发出一封邮件。

我的问题是:

在除IE (任何版本)之外的任何其他浏览器中,这都很好地工作,没有任何问题,但是对于IE,GET调用甚至不会出现在网络流量上,它被忽略,而不是调用,但是整个调用仍然是进行的,就好像它通过了OK!

这是https服务的问题,还是我错过了什么?

更新:通过对本地文件的post调用来解决这个问题,该文件在GET请求上向外部服务器发出请求,所以现在正在工作,但这是一种愚蠢的做事方式。任何能对此有所了解的人都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2011-06-03 08:26:31

似乎是缓存问题。可以缓存GET请求,因此可以尝试在url中添加一个随机的querystring参数,以避免出现这种情况。或者将$.ajaxcache: false结合使用

代码语言:javascript
复制
$.ajax({
    url: 'https://get.request.com/something',
    type: 'GET',
    data: { email: $(".emailbody input").val() } // <-- note that you don't need to encode here, jQuery will take care of this
    cache: false,
    success: function(result) {
        ...
    }
});

还要确保你尊重同源政策限制。确保这一点的最佳方法是使用相对urls。因此,与其:

代码语言:javascript
复制
'https://get.request.com/something'

用途:

代码语言:javascript
复制
'/something'
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6223892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档