ionic 通过Rest API总是抱'Access-Control-Allow-Origin',我已经运行CORS
发布于 1年前 作者 dskra 894 次浏览 来自 问答

我使用wordpress的 json api 通过ionic发送用户名密码,总是提示跨域访问错误, 我已经在服务器端配置运行cors了,head中已经提示“Access-Control-Allow-Origin: *”,我看到有人可以使用proxy server 配置 ionic serve ,但是我按照说明配置 ionic.project,serve运行不起来,搞不定为什么、

通过 ionic serve 登录捕获的head如下

GET /wordpress/api/user/generate_auth_cookie?password=12345&username=zhaok HTTP/1.1 Host: 192.168.0.118 Accept: application/json, text/plain, / Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8 Origin: http://localhost:8100 Referer: http://localhost:8100/ User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36 X-DevTools-Emulate-Network-Conditions-Client-Id: AAC4F361-F0C2-48F4-A2BA-FB53C2D9AB80

HTTP/1.1 301 Moved Permanently Access-Control-Allow-Origin: * Connection: Keep-Alive Content-Length: 0 Content-Type: text/html; charset=UTF-8 Date: Fri, 07 Aug 2015 02:22:00 GMT Keep-Alive: timeout=5, max=100 Location: http://192.168.0.118/wordpress/api/user/generate_auth_cookie/?password… Server: Apache/2.4.10 (Unix) PHP/5.5.24 X-Pingback: http://192.168.0.118/wordpress/xmlrpc.php

2 回复

刚刚发现可能是文件编码问题吧,我从Demo程序中把ionic.project内容拷贝修改后就可以通过ionic serve运行了。

现在还有一个问题我采用文章中提到的工具 corsproxy 指定代理服务,可以运行。 http://ionicinaction.com/blog/how-to-fix-cors-problems-and-no-access-control-allow-origin-header-errors-with-ionic/ ionic.projcet如下 { "name": "cookbook", "app_id": "", "proxies": [ { "path": "/api", "proxyUrl": “http://192.168.0.106:1337/192.168.0.106/wordpress/api” } ] } var APIUrl = ENV.api + '/get_category_index/’; var resource = $resource(APIUrl, {}, { query: { method: 'GET’, cache: true, isArray: true } }); resource.query({}, function(data) { console.log(data); Storage.set(storageKey, data.categories); });

  结果问题依然提示。
  不过我使用 如下url都可以正确得到内容。
  http://localhost:8100/api/user/generate_auth_cookie?password=12345&username=zhaok
  这是怎么回事是?

刚刚搞明白了,不能使用$resource,根据例子看了一下,也通过$http取值,居然没有问题,不知道是json api的问题还是其他问题。

回到顶部