Ajax Vue.js+;Vue资源编号';访问控制允许原点';

Ajax Vue.js+;Vue资源编号';访问控制允许原点';,ajax,vue.js,Ajax,Vue.js,使用Vue.js 1.0和Vue资源的跨站点ajax请求。我得到以下错误:XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头 我对这个问题有基本的了解,但不确定如何在请求中添加回调函数,或者这是否是本例的最佳解决方案。我在这里输入完整的请求URL只是为了让它更容易理解 new Vue({ el: '#stockList', data: function() { return {

使用Vue.js 1.0和Vue资源的跨站点ajax请求。我得到以下错误:XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头

我对这个问题有基本的了解,但不确定如何在请求中添加回调函数,或者这是否是本例的最佳解决方案。我在这里输入完整的请求URL只是为了让它更容易理解

new Vue({
    el: '#stockList',

    data: function() {
        return {
            query: '',
            stocks: []
        };
      },

    ready: function() {
      this.getStocks();

      },

    methods: {
        getStocks: function() {
            this.$http.get('http://dev.markitondemand.com/MODApis/Api/v2/Lookup/jsonp?input=NFLX&callback=handleResponse',
                function(data) {
                  this.stocks = data;
                }
            );
        }
    }
})

如果您无法控制dev.markitondemand.com,请将您的本地环境设置为http而不是https。

我几乎不了解网络,但我能够使用以下几种远程API工作:

this.$http.jsonp
而不是

this.$http.get
“无访问控制允许来源”标题通常是服务器的问题。这意味着,如果请求来自与服务器相同的域,则服务器配置为仅允许个人访问API。您需要从请求数据的网站运行脚本,或者需要更改服务器配置以允许访问所有域


如果您没有访问服务器的权限,并且不想在浏览器中运行脚本,那么我认为您可以使用无头浏览器(如PhantomJS)导航到页面,在包含脚本的dom中插入脚本元素,执行函数,然后从API返回数据。我可以为您编写代码,但老实说,它有点复杂。您必须知道如何使用node.js和phantom.js。我个人只在节点“html pdf”包中使用了phantom.js,但我相信只要稍加阅读,您就可以知道如何使用它。

错误消息明确指定服务器不允许使用源站。对于跨站点请求,服务器必须返回/指定源站这是允许请求资源的。如果您对服务器有控制权,请在响应中指定此标头值,或者为所有文件指定
*
。也许我不理解这个问题。我正在运行一个本地开发服务器来学习JavaScript和Vue,所以我想我可以控制源服务器。我无法控制markitondemand.com服务器,尽管如果将该url放入浏览器,它会返回响应。我认为使用JASONP可以避免跨站点协议?你能解释一下我遗漏了什么吗?感谢您发送请求的方式似乎是跨站点的,而服务器没有配置为这样做。我对AJAX的理解充其量只是新手,所以我认为markitondemand会接受跨站点的,因为他们提供了免费的API。也许情况并非如此,或者我没有正确格式化请求。我最终使用PHP来请求他们--$returned=json_decode(file_get_contents($url),true);--然后让vue调用我根据他们的数据创建的本地api。谢谢你的回复。