聚合物核心-ajax跨域问题
我正在尝试使用Polymer和core-ajax组件进行跨域调用。 我一直回来在请求的资源上没有’Access-Control-Allow-Origin’标题。 我的组件代码如下
如果我使用jQuery和以下代码片段,它可以工作
$.getJSON('http://api.meetup.com/2/event_comments/?key=MyKeyc&event_id=191593992&callback=?')
所以我想我的问题是什么voodoo魔法是jQuery使用的聚合物不是,我如何解决它? 我检查了控制台,一切看起来都一样(标题,参数等)。
正如恰当命名的Jason P在上面的评论中指出的那样,你可以在这里使用polymer-jsonp。
在这方面,Polymer-jsonp已被弃用。
替代方案是core-shared-lib ,在此处描述: https : //www.polymer-project.org/0.5/docs/elements/core-shared-lib.html
这里是Github资源https://github.com/Polymer/core-shared-lib 。
core-shared-lib支持共享基于JSONP的JavaScript库。
我知道它已经有一段时间了,但我最近遇到了同样的麻烦,并且发现Iron-ajax会在执行实际请求之前执行选项请求,所以我通过添加filter来响应选项请求来解决它。 以下是我在Golang的代码,如果有人对细节感兴趣。
origin := c.Request.Header.Get("origin") method := c.Request.Method if strings.ToUpper(method) == "OPTIONS" { if origin == "" || strings.HasSuffix(origin, "domainname.com") { c.Writer.Header().Set("Access-Control-Allow-Origin", origin) c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") c.Writer.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS") c.Writer.Header().Set("Access-Control-Allow-Headers", "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With") c.Writer.Header().Set("Access-Control-Max-Age", "1728000") c.AbortWithStatus(204) } else { c.AbortWithStatus(400) } }
不推荐使用,core-shared-lib替代了polymer-jsonp