2013-04-25 15 views
13

के साथ cors अनुरोध को सक्षम करने के लिए मेरे पास एक angular.js एप्लिकेशन है और मुझे CORS अनुरोध करने की आवश्यकता है।angular.js-resource

मैं यहां वर्णित कोणीय संसाधनों का उपयोग करके अपनी शेष सेवाओं "कोणीय" को परिभाषित करना चाहता हूं: http://docs.angularjs.org/tutorial/step_11

लेकिन मुझे यह काम करने का कोई तरीका नहीं मिला है। Google पर मुझे निम्नलिखित नमूना कोड मिला: http://jsfiddle.net/ricardohbin/E3YEt/, लेकिन ऐसा लगता है कि कोणीय संसाधनों के साथ काम नहीं करना है।

यह मेरा app.js

'use strict'; 

angular.module('corsClientAngularApp', ['helloServices']) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 

है इस बाकी सेवाओं

angular.module('helloServices', ['ngResource']). 
    factory('Hello', function($resource){ 
    return $resource('http://localhost:8080/cors-server/hello/:name', {}, { 
    query: {method:'GET', params:{name:'name'}, isArray:false} 
    }); 
}); 

यह $ http का उपयोग कर नियंत्रक के साथ मेरी main.js, इस काम करता है के साथ अपने services.js है !:

'use strict'; 

angular.module('corsClientAngularApp') 
    .controller('MainCtrl', function ($scope, $http, Hello) { 
    $http.defaults.useXDomain = true; 


    $http.get('http://localhost:8080/cors-server/hello/stijn') 
     .success(function(data) { 
      $scope.hello = data; 
     }); 
    }); 

यह कोणीय संसाधनों का उपयोग करके मेरे main.js का एक और संस्करण है। यह काम नहीं करता :(

'use strict'; 

angular.module('corsClientAngularApp') 
    .controller('MainCtrl', function ($scope, $http, Hello) { 
    $http.defaults.useXDomain = true; 
    $scope.hello = Hello.query({name:'stijn'}); 
    }); 

यह वह जगह है काम कर अनुरोध हेडर (Chrome DevTools से) कर रहे हैं:

Request URL:http://localhost:8080/cors-server/hello/stijn 
Request Method:OPTIONS 
Status Code:200 OK 

Request Headers 
Accept:*/* 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4 
Access-Control-Request-Headers:accept, origin, x-requested-with 
Access-Control-Request-Method:GET 
Cache-Control:max-age=0 
Connection:keep-alive 
Host:localhost:8080 
Origin:http://localhost:9000 
Referer:http://localhost:9000/ 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 

Response Headers 
Access-Control-Allow-Headers:accept, origin, x-requested-with 
Access-Control-Allow-Methods:GET 
Access-Control-Allow-Origin:* 
Content-Length:0 
Date:Thu, 25 Apr 2013 10:42:34 GMT 
Server:Apache-Coyote/1.1 

और ये काम नहीं कर अनुरोध हेडर हैं:

Request URL:http://localhost/cors-server/hello/stijn 
Request Method:OPTIONS 
Status Code:200 OK 

Request Headers 
Accept:*/* 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4 
Access-Control-Request-Headers:accept, origin, x-requested-with 
Access-Control-Request-Method:GET 
Cache-Control:max-age=0 
Connection:keep-alive 
Host:localhost 
Origin:http://localhost:9000 
Referer:http://localhost:9000/ 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 


Response Headers 
Allow:GET,HEAD,POST,OPTIONS,TRACE 
Connection:Keep-Alive 
Content-Length:0 
Content-Type:text/plain 
Date:Thu, 25 Apr 2013 10:41:12 GMT 
Keep-Alive:timeout=5, max=100 
Server:Apache/2.2.22 (Win32) 

ऐसा लगता है कि कोणीय संसाधनों का उपयोग करते समय यूआरएल गलत है। लेकिन क्यों?

धन्यवाद रों!

+0

'काम नहीं करता' में एक समस्या की परिभाषा नहीं है। ब्राउज़र कंसोल में अनुरोध का निरीक्षण करें और अधिक जानकारी प्रदान करें – charlietfl

+0

मैंने अनुरोध हेडर – cremersstijn

उत्तर

7

$resource के लिए यूआरएल पैरामीटर के लिए कोलन का उपयोग स्वीकार करता है। इसलिए यूआरएल में बंदरगाह का उपयोग करते समय आपको बंदरगाह के लिए कोलन से बचने की जरूरत है। यह $resource docs

+0

जोड़ा है यह काम करता है, लेकिन अब मुझे "{" 0 ":" एच "," 1 ":" ई "," 2 ":" एल "मिलता है, "3": "एल", "4": "ओ", "5": "", "6": "एस", "7": "टी", "8": "i", "9" : "जे", "10": "एन"} "हेलो स्टिजन" के बजाय। मैं कैसे इसे ठीक कर सकता हूं? – cremersstijn

+3

@cremersstijn $ संसाधन गुणों को वापस करने के लिए एक ऑब्जेक्ट की अपेक्षा करता है। यह चरित्र के साथ एक चरित्र के रूप में प्रत्येक चरित्र स्थिति को मूल्य के रूप में निर्दिष्ट करके उस वस्तु में अपनी स्ट्रिंग को मजबूर कर रहा है। – c0bra

+2

जहां संसाधन दस्तावेज़ों में वास्तव में बंदरगाह से बचने का वर्णन किया गया है? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^