Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问控制允许原点头在原点';空';尝试将数据发布到本地应用程序时_Javascript_Jquery_Rpc_Bitcoin_Same Origin Policy - Fatal编程技术网

Javascript 访问控制允许原点头在原点';空';尝试将数据发布到本地应用程序时

Javascript 访问控制允许原点头在原点';空';尝试将数据发布到本地应用程序时,javascript,jquery,rpc,bitcoin,same-origin-policy,Javascript,Jquery,Rpc,Bitcoin,Same Origin Policy,我正在开发一个程序,通过浏览器与您的比特币钱包进行交互 通过在.conf文件中使用以下命令将比特币客户端设置为服务器 server=1 rpcuser=test rpcpassword=test rpcallowip=127.0.0.1 它将允许它作为服务器运行,从而允许您在其上发布JSON命令。我用下面的代码实现了这一点 $.ajax({ url: 'http://test:test@127.0.0.1:29661', type:

我正在开发一个程序,通过浏览器与您的比特币钱包进行交互

通过在.conf文件中使用以下命令将比特币客户端设置为服务器

server=1
rpcuser=test
rpcpassword=test
rpcallowip=127.0.0.1
它将允许它作为服务器运行,从而允许您在其上发布JSON命令。我用下面的代码实现了这一点

       $.ajax({
            url: 'http://test:test@127.0.0.1:29661',
            type: 'POST',
            contenType: 'application/json',
            cache:false,
            dataType:"json",
            data: '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }',
            timeout: 15000,
        })
        .done(function(msg){
            alert(msg);
        });
但是,只有当我在禁用安全功能的情况下呈现Google Chrome时,它才起作用,从而消除了CORS安全限制,这对于用户来说是不可接受的

既然它试图在本地文件系统上连接到比特币服务器并且我运行的文件在本地文件系统上为什么我会收到CORS错误,因为它们应该在同一个域上?那我该怎么做呢

我必须通过file://访问本地文件进行测试(据我所知,“可能”限制了CORS的支持)。不过,这也是用户使用它的方式

::已尝试的方法::

jsonp-这无法工作,因为它只能执行GET请求,而我需要执行POST请求。这是通过在DOM上创建一个脚本标记并获取数据来实现的,并且需要一个回调函数从中获取数据。有点像黑客,但不幸的是,这不起作用,因为我需要发布数据

easyXDM-尝试了此操作,但失败,因为它不支持文件:///协议:(:),否则我就需要它了

WebSocket-需要服务器实现此功能,我无法更改比特币来源


提供文件时,访问控制允许服务器标题中的源文件-如果文件来自服务器,但仅位于本地系统文件上,这将起作用://,因为它将访问来自比特币客户端的数据并以图形方式显示信息。

好的,我解决了问题。我必须编辑比特币RPC文件处理CORS是自己的事

上面的链接为我提供了很多关于如何做到这一点的有用信息,特别是它必须分两个阶段完成

有飞行前请求和飞行前响应,然后是实际请求和实际响应


因此,我编辑了bitcoinrpc.cpp文件来处理此问题。如果有人想知道我是如何实现它的,我将链接到github源代码。

您发帖的页面的域是什么?我发帖的域是文件://,因此没有域名。这是个问题:(.使用jsonp或从与数据相同的ip/端口提供html。我已经尝试了jsonp,但它不起作用,因为您无法将数据发布到比特币客户端。我需要能够将json中的数据发布到它。如何从与数据相同的ip/端口提供html?如果答案是我需要一个Web服务器(我希望它可以是答案),但我不能,因为我不能期望我的用户群知道如何正确安装和设置。不要使用file://,使用fiddle或其他真实的http站点与127.0.0.1进行对话。如果127“服务器”不发出cors,而且你根本无法控制它的输出,那么你需要制作一个浏览器附加组件、一个节点webkit应用程序、一个firefox打包应用程序、一个HTA文件等等……祝贺你找到了解决方案!我在与比特币JSON-RPC服务器交互时也遇到了很多问题。你能给我一个github链接,显示你对该服务器所做的更改吗bitcoinrpc.cpp文件?谢谢。这是很久以前的事了,我不确定我是否还有这个文件,但是如果你需要帮助,请在这里的聊天中联系我,如果你查看该教程,这不是一件坏事。我可能反应有点慢,但会尽力提供帮助。基本上,你必须模拟cors如何与比特币一起工作,以便它了解你的应用程序是安全的。这是一个来回交换标题的握手过程。感谢您的帮助。我正在尝试为altcoin制作一个网络钱包。我的问题是在bitcoinrpc.cpp模块中写入飞行前响应,以便OPTIONS request返回状态代码OK。如果您查看源代码,我在其中编程了斗篷币的开源代码也许他们还在那里。