XMLRPC请求中的Access-Control-Allow-Origin问题

尤拉斯·莫汉

我正在使用从事移动应用开发HTML5 + Phonegap当前正在使用XMLRPC运行的移动应用正常。(Android和iOS)

我需要使用与相同的应用程序website in browsers(使用HTML5)。但是,当我尝试在网站上运行我的应用程序时,出现此错误:

XMLHttpRequest cannot load 'Client' URL'. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost <http://localhost/>' is therefore not allowed access. 

什么时候搜索专家说使用JSONP。但是我可以使用相同的XMLRPC方法吗?

例如 ;

出于登录目的,正在使用;

$.xmlrpc({
  url: 'http://clienturl/xmlrpc/common',
  methodName: 'login',
  params: [Database_name','user_name','Password'],
  success: function(response, status, jqXHR) {
    alert('success'); },
  error: OnError
});

它可以作为移动应用程序正常工作。

但是Access-Control-Allow-Origin当我尝试作为网站运行时会遇到跨域问题。

我怎样才能解决这个问题 ?

inf3rno

默认情况下,SOP(相同来源策略)允许跨域请求,但它会阻止接收这些请求的响应。Access-Control-Allow-Origin在您的错误信息是CORS(跨域资源共享)标头。它告诉浏览器,您可以通过发送来自另一个域(您的XMLRPC客户端的域)的请求来读取域(您的XMLRPC服务器的域)的响应。因此,如果要使用AJAX进行调用,则必须从服务器发送回CORS allow标头。

注意:CORS无法在旧版浏览器中使用。

可能的解决方案:

  • 如果您http://clienturl/xmlrpc/common打来http://localhost

    response.header('Access-Control-Allow-Origin', "*")
    

    按照以下方法,它是一个不太安全的解决方案:Access-Control-Allow-Origin不允许使用起源http:// localhost,但是您始终可以为客户端添加另一个主机名(例如,http://client.xml.rpc),例如,通过Windows,您可以使用IIS服务器修改主机文件并添加绑定。

    我不建议使用此解决方案,因为它具有允许凭据标头的安全隐患。

  • 另一个更安全的选择是列出允许的主机列表,检查从哪个主机收到了实际的请求,然后发回适当的标头:

    if (allowedHosts.contains(request.host))
        if (request.host== "http://localhost")
            response.header('Access-Control-Allow-Origin', "null");
        else
            response.header('Access-Control-Allow-Origin', request.host);
    else
        response.header('Access-Control-Allow-Origin', server.host);
    

    这是具有多个主机的正确解决方案,因为如果您允许*的凭据,那么每个人都将能够读取和写入已登录用户的会话。

    通过http://localhostfile:///IRI,您必须使用null原点。我不确定其他协议,我猜在当前的浏览器中,您也必须使用null它们的来源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XMLRPC请求中的Access-Control-Allow-Origin问题

来自分类Dev

离子怪异的“ Access-Control-Allow-Origin”问题

来自分类Dev

服务器上的Access-Control-Allow-Origin问题

来自分类Dev

CORS问题:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

Chrome中的AngularJS CORS问题-所请求的资源上没有“ Access-Control-Allow-Origin”标头

来自分类Dev

IIS中的CORS问题,使用Access-Control-Allow-Origin中的凭据和通配符

来自分类Dev

如何解决express js中没有“Access-Control-Allow-Origin”的问题?

来自分类Dev

如何解决 Express 中的“Access-Control-Allow-Origin”问题?

来自分类Dev

AngularJS发布请求错误否'Access-Control-Allow-Origin'

来自分类Dev

AngularJS发布请求错误否'Access-Control-Allow-Origin'

来自分类Dev

请求Access_control_allow_origin标志的URL

来自分类Dev

带有Access-Control-Allow-Origin正则表达式值的Ajax CORS问题

来自分类Dev

Safari的CORS问题:Access-Control-Allow-Origin不允许使用起源

来自分类Dev

Wicket-Apache URL重写Access-Control-Allow-Origin问题

来自分类Dev

CORS问题:实际出现错误“没有'Access-Control-Allow-Origin'标头”

来自分类Dev

使用Bing Maps Proxy的Ionic失败,并且Access-Control-Allow-Origin问题

来自分类Dev

https的CORS Access-Control-Allow-Origin

来自分类Dev

XMLHttpRequest 'Access-Control-Allow-Origin' 错误

来自分类Dev

ASP .NET Core中的CORS中的问题-响应中“ Access-Control-Allow-Origin”标头的值不得为通配符“ *”

来自分类Dev

AJAX请求中不存在“ access-control-allow-origin”标头

来自分类常见问题

请求的资源错误中不存在“ Access-Control-Allow-Origin”标头

来自分类Dev

请求的资源.htaccess中没有Access-Control-Allow-Origin标头

来自分类Dev

django中的“请求的资源上没有'Access-Control-Allow-Origin'标头”

来自分类Dev

Node.Js错误“请求中没有'Access-Control-Allow-Origin'标头”

来自分类Dev

keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头

来自分类Dev

在IIS中修改Access-Control-Allow-Origin标头

来自分类Dev

access-control-allow-origin中的相同域是什么

来自分类Dev

在Aurelia中添加“ Access-Control-Allow-Origin”标头

来自分类Dev

飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin

Related 相关文章

  1. 1

    XMLRPC请求中的Access-Control-Allow-Origin问题

  2. 2

    离子怪异的“ Access-Control-Allow-Origin”问题

  3. 3

    服务器上的Access-Control-Allow-Origin问题

  4. 4

    CORS问题:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

  5. 5

    Chrome中的AngularJS CORS问题-所请求的资源上没有“ Access-Control-Allow-Origin”标头

  6. 6

    IIS中的CORS问题,使用Access-Control-Allow-Origin中的凭据和通配符

  7. 7

    如何解决express js中没有“Access-Control-Allow-Origin”的问题?

  8. 8

    如何解决 Express 中的“Access-Control-Allow-Origin”问题?

  9. 9

    AngularJS发布请求错误否'Access-Control-Allow-Origin'

  10. 10

    AngularJS发布请求错误否'Access-Control-Allow-Origin'

  11. 11

    请求Access_control_allow_origin标志的URL

  12. 12

    带有Access-Control-Allow-Origin正则表达式值的Ajax CORS问题

  13. 13

    Safari的CORS问题:Access-Control-Allow-Origin不允许使用起源

  14. 14

    Wicket-Apache URL重写Access-Control-Allow-Origin问题

  15. 15

    CORS问题:实际出现错误“没有'Access-Control-Allow-Origin'标头”

  16. 16

    使用Bing Maps Proxy的Ionic失败,并且Access-Control-Allow-Origin问题

  17. 17

    https的CORS Access-Control-Allow-Origin

  18. 18

    XMLHttpRequest 'Access-Control-Allow-Origin' 错误

  19. 19

    ASP .NET Core中的CORS中的问题-响应中“ Access-Control-Allow-Origin”标头的值不得为通配符“ *”

  20. 20

    AJAX请求中不存在“ access-control-allow-origin”标头

  21. 21

    请求的资源错误中不存在“ Access-Control-Allow-Origin”标头

  22. 22

    请求的资源.htaccess中没有Access-Control-Allow-Origin标头

  23. 23

    django中的“请求的资源上没有'Access-Control-Allow-Origin'标头”

  24. 24

    Node.Js错误“请求中没有'Access-Control-Allow-Origin'标头”

  25. 25

    keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头

  26. 26

    在IIS中修改Access-Control-Allow-Origin标头

  27. 27

    access-control-allow-origin中的相同域是什么

  28. 28

    在Aurelia中添加“ Access-Control-Allow-Origin”标头

  29. 29

    飞行前响应中Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin

热门标签

归档