跨域jquery 1.6.2 ajax调用正试图从同一域进行调用



我在另一个域B(api.domainb.com(上设置了一个api,并想从域a(www.domaina.com(调用它。然而,当我通过jquery ajax从域a调用域B时,jquery最终试图调用www.domaina.com/api.domainb.com,这显然会返回一个错误。以下是相关的javascript代码

    $.ajax(
      url: 'http://api.domainb.com',
      type: 'GET',
      dataType: 'jsonp',
      data: {hello: 'world'}, 
      crossDomain: true,
      success: function(data){
        alert(JSON.stringify(data))
      }, 
      error: function(error){
        alert(JSON.stringify(error))
      });

最终,域A和域B中的代码将在同一个域上,但目前,我需要进行跨域调用。关于如何使这项工作发挥作用,有什么建议吗?

您只是缺少协议,所以Ajax调用知道它是一个不同的域,而不是一个相对的URL。尝试使用url: 'http://api.domainb.com'

您不能进行跨域调用;浏览器一般是不允许的。但是,您看到所描述的行为的原因是您的URL缺少"http://"前缀。

使用相当新的HTML5API可以做一些事情来"获得权限"进行跨域调用。

edit@Dan正确地指出,虽然XMLHttpRequest(人们通常称之为"ajax"(不会做跨域的事情(CORS除外(,但可以利用<script>标记可以引用其他域的事实来组合服务。但是,服务器端代码必须有所不同。(这通常被称为"JSONP"。(

相关内容

  • 没有找到相关文章

最新更新