2016-04-17 20 views
0

何がうまくいかなかったのか分からないうちに、何が起こっているのか誰かが知っているかどうか私はここで私の運を試してみると思いました。Javascript GET Request with 301 Redirect

私はGoLang/Gorilla muxサーバーバックエンドを備えたangularJSアプリを持っています。レスポンスヘッダーに、私は以下を参照してくださいすることができ、要素を検査使用

$.get('http://localhost:8080/api/v1'+'/locations/', {borough: "Queens"}) 

Content-Length:68 
Content-Type:text/html; charset=utf-8 
Date:Sun, 17 Apr 2016 20:12:00 GMT 
Location:/api/v1/locations?borough=queens 
ウェブアプリは基本的に私はこの単純なJavascriptがGETリクエストを持って http://localhost:8888/とサーバ、 http://localhost:8080/

であります

コンソールでは、次のようになります。

私はポストマンを使用して、まったく同じ要求を試してみて、と401を参照してください。私は何を期待され

Access-Control-Allow-Origin →* 
Content-Length →0 
Content-Type →text/plain; charset=utf-8 
Date →Sun, 17 Apr 2016 19:46:53 GMT 

。なんらかの理由で、私の要求は301リクエストを提供していないサーバーにさえしていないようです。郵便配達員とアプリが全く異なる反応を出すという事実は混乱しています。

私はCORSにいくつか問題がありましたが、私はそれを解決したと考えました。 Postmanが私にAccess-Control-Allow-Originヘッダーの別の結果を与えるという事実は、これが別のものだと私に思い出させます。

私は助けを歓迎します。

編集:

私は標準CORSパラメータでバックサーバの応答を行いました。 ...

Access-Control-Allow-Headers →Origin, X-Requested-With, Content-Type,  Accept, Authorization 
Access-Control-Allow-Methods →GET, POST, PUT, DELETE 
Access-Control-Allow-Origin →* 
Content-Length →0 
Content-Type →text/plain; charset=utf-8 
Date →Sun, 17 Apr 2016 20:27:31 GMT 

はまだJSの呼び出しのために301を取得

EDIT2:これは私がポストマンから今得るものです

(ネットワーク要求と同じ強要するポストマンコールを設定してみました)
Accept:*/* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Host:localhost:8080 
Origin:http://localhost:8888 
Referer:http://localhost:8888/root/mainapp/ 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 

なお、301をinspect要素から取得し、Postmanで401を期待します。どのようにして安静なHTTPのコンテキストでは、我々は2つの同一のHTTP呼び出しを持っているが、それから完全に異なる動作を持っていることができますか?

+0

おそらくhttpsで呼び出す必要がありますか? https://en.wikipedia.org/wiki/HTTP_301 – mauros

+0

@maurosなぜそれが必要かわかりません。とにかく、私はそれを試してみてnet :: ERR_SSL_PROTOCOL_ERROR – JoeyN

+0

CORSがサーバで有効になっている必要があるクロスドメイン要求をしています。そのエラーのWeb検索を行ってください。それはここで一日に何度も出てくる。郵便配達員はCORSの制限または同じ起源のポリシーの対象外です – charlietfl

答えて

0

だから、基本的に、私はそれを作るための最後のスラッシュ削除する場合:これは働いていた

$.get('http://localhost:8080/api/v1'+'/locations', {borough: "Queens"}) 

$.get('http://localhost:8080/api/v1'+'/locations/', {borough: "Queens"}) 

から

を!私は理由について血のようなアイデアはありません。もし私がここで何が起こったのか知っている人から聞くのが大好きなら、なぜこれが働くのでしょうか。私は繰り返し述べます - 最後のスラッシュのために、要求はサーバにもさえしませんでした。