私は、AngularJSフロントエンドとLaravelバックエンドを持つWebアプリケーションを開発し始めています。この段階で私はXAMP htdocsに2つのディレクトリを持っています.1つはローカルホストのポート9000のgrunt組み込みサーバーによって提供されるAngularJSプロジェクト用であり、他のプロジェクトはlocalhostのpost 8051でXAMP Apache/PHPによって提供されるLaravelです。テストURLとして使用している外部インターネットからの他のLaravelアプリケーションと他のURLへの$ httpリクエスト - 明らかにこれはサイト間のセキュリティ保護によるものです。AngularJSとPHP用に異なるサーバーはありますか?
それは私に質問につながります - フロントエンド/バックエンドアプリケーション用に2つのサーバー(または、異なるポートを持つ少なくとも1つのサーバー - 各ポートは異なるサーバーによって提供されます)?私はこれがJSONP要求に置き換えられるべきGET要求のために可能であることを知っています。しかし、他のHTTP動詞はどうでしょうか?PUT、DELETEなどの要求を他のサーバーまたは同じサーバー/アプリケーションの他のポートに行うことができる$ httpメソッドがありますか?
または、唯一の可能性は、同じアプリケーションの同じサーバー/ポートでフロントエンドとバックエンドの両方を実行することです。つまり、私はAngularJSをPHPやJavaアプリケーションの一部としてホストする必要があります。
最初の問題は、有名なAngular JS http status -1エラーから発生します。私は密接にチュートリアルhttp://www.tutorials.kode-blog.com/laravel-5-angularjs-tutorialと私のコードを以下に示しています:
return $http({
method: 'GET', //'JSONP',
url: 'http://localhost:8081/testserver/server.php/api/v1/contracts',
//url: 'http://jsonplaceholder.typicode.com/posts',
timeout: 100000
}).then(function(result) {
alert(result);
return result.data;
},
function (error) {
alert(error);
console.log("v2 my object: %o", error);
alert(JSON.stringify(error));
}
);
私はローカルホストへのリクエストを行うと、-1のエラーが存在するが、http://jsonplaceholder.typicode.com/postsに私の要求が予想される答えを与えます。 localhostではなく外部IPアドレスを使用しようとしましたが、エラーはまだありました。私のサーバー側のコードは明らかにLaravelを照らし使用しています - 私は推測、>取得()関数を、契約の配列を変換するために必要なすべての変換は、JSONレスポンスにオブジェクトん:
public function index($id = null) {
if ($id == null) {
//this branch is being tested
return Contract::orderBy('CONTRACT_NO', 'asc')->get();
} else {
return $this->show($id);
}
}
サーバーの応答については何も例外ではありません -
[{"CONTRACT_NO":"1","CUSTOMER":null,...}]
は –
私の最初の問題は、AngularJS HTTPステータス-1有名な問題である要求します。私はそれがCORSに接続されていると思っていましたが、私のAngularはhttp:// localhost:9000 /#/ contractsで動作していて、 'url:' http://jsonplaceholder.typicode.com/posts ' localhost Laravelサービスに対してhttpステータス-1がスローされます。私はこれがCORSかどうか分かりません – TomR
リクエストのクライアント側をどのようにしているかを示すコードを投稿し、それをサーバ側でどのように処理しようとしていますか? –