私のローカルPCにアプリケーションを開発しています。フロントエンドはspinejで構築し、バックエンド-apiはnode.jsで構築する必要があります。 脊椎は、私は私のモデルに以下を追加しました脊椎内のポート3000 上で実行されているポート9294とのNode.js上で実行されている:spine、node.js(express)とAccess-Control-Allow-Originは
@url: "http:localhost:3000/posts"
と私の特急サーバーで
app.get('/posts', function(req, res){
console.log("giving ALL the posts");
res.header("Access-Control-Allow-Origin", "*")
res.json(posts);
});
しかし、私はいつもクロムの次のエラーを受け取ります:
XMLHttpRequest cannot load http://localhost:3000/posts. Origin http://localhost:9294 is not allowed by Access-Control-Allow-Origin.
私のapiに正しくアクセスするにはどうすればよいですか?回答にヘッダーを追加しても問題は解決しますが、
あなたは、ヘッダーが実際に設定されていることを確認するために、レスポンスヘッダを検査しましたか?また、jQueryは 'OPTIONS' HTTPコマンドを使用して事前認証を検出します。エクスプレスがそのHTTP動詞にも応答していることを確認してください。 – tkone
正直言って、私の要求は私のnode.jsサーバーに到達しないようです。何かがクライアントに送信される前に、app.get()にdebugステートメントを追加しました。 URL上で直接私のAPIにアクセスすると文を見ることができますが、背骨を使ってアクセスするときはアクセスしません – soupdiver
あなたはこれが起こっていることを確認するためにcharlesのようなものを使うべきです。ここではxドメインのものを大量に扱っていますが、ヘッダーが設定されていないことがわかるまではイライラしています。 – tkone