【问题标题】:CROSS DOMAIN ISSUE--jsonp not working跨域问题——jsonp 不工作
【发布时间】:2014-04-19 10:43:49
【问题描述】:

我需要从另一台服务器访问一个 php 文件 即,我拥有的服务器不支持 php。我需要从这里发送电子邮件。

我尝试了跨域服务器,它具有 php 和 php 功能来发送电子邮件。

我用 Jsonp 试过这个

这是我的代码

var app = 'http://www.maildomain.com/mail.php';
$.ajax({
    url: app,
    async: true,
    dataType: "jsonp",
    jsonp: "jsoncallback",
    type:"POST",
    success: function(html){
         alert("aa");
    },
    error: function(){

    }
});

【问题讨论】:

  • “不工作”是什么意思?成功处理程序会触发吗?错误处理程序会触发吗?电子邮件是否发送? JS 控制台有错误吗?当您查看浏览器开发人员工具中的“网络”选项卡时,您是否看到正在发送的请求?它的格式是否符合您的预期?反应如何?

标签: php jquery ajax jsonp


【解决方案1】:

Disable same origin policy in Chrome

转到此链接 完成此操作后它应该可以工作 是谷歌浏览器在做跨域问题

【讨论】:

  • 这并不能解释为什么问题中的代码不起作用(因为 JSONP 的目的是绕过同源策略)并且 OP 无法关闭安全功能每个访问其网站的人的浏览器。
  • 必须在 URL 末尾添加回调?
【解决方案2】:

感谢您的回答。

每个人都接近答案

我还是明白了……这是一个异步参数,导致了问题。它需要设置为 false。

成功了

var app = 'http://www.maildomain.com/mail.php';
$.ajax({
    url: app,
    async: false,
    dataType: "jsonp",
    jsonp: "jsoncallback",
    type:"POST",
    success: function(html){
       alert("aa");
    },
    error: function(){
    }
});

【讨论】:

    猜你喜欢
    • 2013-02-24
    • 2014-12-20
    • 2011-02-02
    • 2011-02-13
    • 2014-05-18
    • 2013-11-09
    • 2013-01-19
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多