Access-Control-Allow-Origin and Angular.js $http

前端 未结 7 1824
盖世英雄少女心
盖世英雄少女心 2020-12-24 06:37

Whenever I make a webapp and I get a CORS problem, I start making coffee. After screwing with it for a while I manage to get it working but this time it\'s not and I need he

7条回答
  •  Happy的楠姐
    2020-12-24 06:46

    I'm new to AngularJS and I came across this CORS problem, almost lost my mind! Luckily i found a way to fix this. So here it goes....

    My problem was, when I use AngularJS $resource in sending API requests I'm getting this error message XMLHttpRequest cannot load http://website.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. Yup, I already added callback="JSON_CALLBACK" and it didn't work.

    What I did to fix it the problem, instead of using GET method or resorting to $http.get, I've used JSONP. Just replace GET method with JSONP and change the api response format to JSONP as well.

        myApp.factory('myFactory', ['$resource', function($resource) {
    
               return $resource( 'http://website.com/api/:apiMethod',
                            { callback: "JSON_CALLBACK", format:'jsonp' }, 
                            { 
                                method1: { 
                                    method: 'JSONP', 
                                    params: { 
                                                apiMethod: 'hello world'
                                            } 
                                },
                                method2: { 
                                    method: 'JSONP', 
                                    params: { 
                                                apiMethod: 'hey ho!'
                                            } 
                                }
                } );
    
        }]);
    

    I hope someone find this helpful. :)

提交回复
热议问题