我想知道你對這個問題的意見,在這個簡單的代碼中,問題Access-Control-Allow-Origin
,已經嘗試了幾種方法defenir the ember "Access-Control-Allow-Origin": "* "
但沒有成功,所以我想知道有同樣問題的人是否找到了解決方案。Ajax - ember.js中的「Access-Control-Allow-Origin」錯誤
我使用的URL地址localhost: 4200
,並已嘗試與firebase
子域在這兩種情況下錯誤總是相同的。
Ajax請求:
import Ember from 'ember';
import { isAjaxError, isNotFoundError, isForbiddenError } from 'ember-ajax/errors';
export default Ember.Controller.extend({
ajax: Ember.inject.service(),
actions: {
code() {
var cliente = '***';
var redirectUri = 'http://localhost:4200/teste';
var client_secret = '***';
var code = '***';
var grant_type = 'authorization_code';
var data =
"client_id=" + cliente +
"&redirect_uri=" + encodeURIComponent(redirectUri) +
"&client_secret=" + client_secret +
"&code=" + code +
"&grant_type=" + grant_type;
this.send('post', data)
},
post(data) {
this.get('ajax').post("https://login.live.com/oauth20_token.srf", {
method: 'POST',
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/x-www-form-urlencoded",
},
data: data,
dataType: 'JSON',
});
},
}});
我的內容安全策略:
contentSecurityPolicy: {
'connect-src': "'self' http://localhost:4200 https://*.googleapis.com https://login.live.com/oauth20_token.srf",
'child-src': "'self' http://localhost:4200",
'script-src': "'self' 'unsafe-eval' https://login.live.com",
'img-src': "'self' https://*.bp.blogspot.com https://cdn2.iconfinder.com http://materializecss.com https://upload.wikimedia.org https://www.gstatic.com",
'style-src': "'self' 'unsafe-inline' ",
},
的錯誤是:
的XMLHttpRequest無法加載https://login.live.com/oauth20_token.srf。對預檢請求的響應不會通過訪問控制檢查:請求的資源上不存在「Access-Control-Allow-Origin」標頭。因此不允許訪問原產地'http://localhost:4200'。
cors限制是由微軟完成的。 –
如果我沒有弄錯,cors頭部必須是響應的一部分,而不是請求。您可以使用代理(如Charles)來追加正確的標題。 – chchrist
無論您在端口4200上運行的服務是否需要返回它所描述的頭文件 - 這都是瀏覽器的安全功能。 (通常,它適用於'unsafesite.russia'時,它試圖連接到'yourbank.safe',但它也適用於一個主機上的不同端口號) – Katana314