将JSON POST请求发送到外部域而无法访问服务器

时间:2016-11-22 12:36:59

标签: jquery html json ajax cross-domain

我正在尝试在POST中向外部域发出JSON请求,但我无法访问服务器的文件来修改它们。

当我提出此请求时,我收到以下错误

  

XMLHttpRequest无法加载https://external.com。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。原因'https://www.ownedwebsite.com'因此不是   允许访问。

问题出在哪里?

这是我正在使用的代码:

  $(document).ready(function(){
            $("#submit").on('click', function(){
                event.preventDefault();
                $.ajax({
                    url: 'https://external.com',
                    type : "POST",
                    crossDomain: true,
                    dataType : 'json',
                    beforeSend: function (request)
                    {
                    //request.setRequestHeader("name", "value");
                    },
                    data : $("#formCart").serialize(),
                    success : function(result) {
                    alert('POST done.');
                    },
                    error: function(xhr, resp, text) {
                        alert('POST failed.');
                    }
                })
            });
        });

我该怎么办?我需要做的就是以JSON格式发送此POST表单数据。

1 个答案:

答案 0 :(得分:0)

如果您想从[{1}}获取json数据,则必须注册twitter密钥,这意味着他们已准备好与api一起投放,类似方法适用于其他网站。

如果您只想抓取该页面,则可以使用json

进行操作



heroku api

$(document).ready(function(){
      var text = 'https://login.yahoo.com/';
      $.ajaxPrefilter( function (options) {
        if (options.crossDomain && jQuery.support.cors) {
          var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
          options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
          //options.url = "http://cors.corsproxy.io/url=" + options.url;
        }
      });

      $.get(
          'https://en.wikipedia.org/wiki/Thomas_Alva_Edison_Memorial_Tower_and_Museum',
          function (response) {

          var res = response;
           $('#yahoo').append(res);


      });

  });