認証のために帆とパスポートを使用してサイトを作成しています。ただし、コードでのJqueryとバックボーンの使用に関しては問題があります。帆で使おうとすると、どちらもダウンしているようです。私がやろうとしていることは、ユーザー認証の後、すべてのスクリプトが存在するホームページにユーザーをルーティングすることです。たとえば、すべての.jsファイルをlayout.ejsに配置します。
<link rel="stylesheet" href="styles/bootstrap-theme.min.css">
<script type="text/javascript" src="js/jquery.js"></script>
ほとんどのcssファイルとjsファイルは機能しますが、バックボーンとjquery(およびjquerymobile)で問題が発生します。jQuery1.10.2とバックボーン1.1.0を使用しています。何が悪いのか考えてみませんか?
バックボーンコードでは、phpファイルを介してAjaxリクエストを作成しようとしています。
var ProfileList = Backbone.Collection.extend({
model: ProfileModel,
url: 'data.php'
});
私は正確に何をしなければなりませんか?ルートにURLを追加するには?または、data.phpファイルをどこに配置する必要がありますか?
編集:jqueryを一番上に置いてgruntfile.jsを変更し、正常に動作します。現在、問題はバックボーンのままです。パスポートとバックボーンを使って別のドメインへのアクセスをリクエストしているので、問題が発生していると思います。data.phpでデータをリクエストしているときは、次のjqueryコードを呼び出しています。
xhr.send( ( s.hasContent && s.data ) || null ): jquery.js (line 8706)
これはAjaxXMLHttpRequest送信リクエストhttp://www.w3schools.com/ajax/ajax_xmlhttprequest_send.aspです。私は通常、localhostとlocalhost:1337の2つのドメインからデータを要求しようとするため、クロスドメインの問題が発生します。cors(クロスオリジンリソースシェアリング)でこの問題を処理できることがわかりました。sails.jsでcorsを許可する方法はありますか?
編集:route.jsファイルでホームページのcorsをtrueに変換します:
'/secondscreen': {
view: 'secondsocialscreen/index',
cors: true
}
それでも同じエラーが発生します。また、config /cors.jsファイルで変数AllRoutesをtrueに変更しました。バックボーンファイルは機能しますが(コンソールを使用してチェック)、データをフェッチできません。Config /cors.jsファイルは次のとおりです。
module.exports.cors = {
// Allow CORS on all routes by default? If not, you must enable CORS on a
// per-route basis by either adding a "cors" configuration object
// to the route config, or setting "cors:true" in the route config to
// use the default settings below.
allRoutes: true,
// Which domains which are allowed CORS access?
// This can be a comma-delimited list of hosts (beginning with http:// or https://)
// or "*" to allow all domains CORS access.
origin: '*',
// Allow cookies to be shared for CORS requests?
credentials: true,
// Which methods should be allowed for CORS requests? This is only used
// in response to preflight requests (see article linked above for more info)
methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
// Which headers should be allowed for CORS requests? This is only used
// in response to preflight requests.
headers: 'content-type'
};
私は何かが足りないのですか?わかりました。何か見つけたと思います。実際、バックボーンコードが存在するfetching.js(data.phpからのデータのフェッチとmodel-controller-viewsの定義)を定義しているときに、home.ejsに転送しようとしています。このファイルをそのまま使用することは可能ですか、それとも帆からMVCを定義する必要がありますか?また、localhost:1337(セールサーバー)からデータを取得しようとしていることがわかりました。ただし、Apachelocalhostからデータをフェッチしたい。帆を走らせている間にApacheサーバーにデータを要求することはどのように可能ですか?Firebugで私は上記を受け取りました:
GET http://localhost/sitec/fetchdata.php?widget=highlights 200 OK 47ms jquery.js (line 8706)
GET http://localhost/sitec/fetchdata.php?widget=sentiment 200 OK 47ms jquery.js (line 8706)
GET http://localhost/sitec/fetchdata.php?widget=tagsCloud 200 OK 47ms jquery.js (line 8706)
それに応じて、jsonデータのオブジェクト(data.phpはjsonファイルを返します)を使用する代わりに、実際にはdata.phpファイルのコードを見ることができます。奇妙な
config / routers.jsを変更することにより、セールでCORSを使用します
module.exports.routes = {
'/ *':{cors:true}
}
ここに記載されています:http://sailsjs.org/#! documentation / config.routes
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加