Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 jQuery.ajax()获取请求无法从firefox运行。与铬合金配合使用_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript jQuery.ajax()获取请求无法从firefox运行。与铬合金配合使用

Javascript jQuery.ajax()获取请求无法从firefox运行。与铬合金配合使用,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在使用第三方API将一些服务集成到我拥有的HTML表单中 要使用API,必须验证每个请求的哈希值和时间戳。30分钟后,哈希和时间戳不再有效。为了避免API出错,我决定在每次提交表单时使用JavaScript和PHP动态设置值 这是我用来生成哈希和时间戳信息的PHP文件 <?php if(isset($_REQUEST['action'])){ switch($_REQUEST['action']){ case 'getHash': //Assign y

我正在使用第三方API将一些服务集成到我拥有的HTML表单中

要使用API,必须验证每个请求的哈希值和时间戳。30分钟后,哈希和时间戳不再有效。为了避免API出错,我决定在每次提交表单时使用JavaScript和PHP动态设置值

这是我用来生成哈希和时间戳信息的PHP文件

 <?php
    if(isset($_REQUEST['action'])){
    switch($_REQUEST['action']){
    case 'getHash':
    //Assign your variables the necessary values.
    $base_url = "";//base_url value goes here. This is the location the request is sent to. 
    $account_id = "";//You must put your account_id here
    $api_accesskey = "";//You must put your api_accesskey here
    $success_url = "";//Your success URL goes here
    $decline_url = "";//your decline URL goes here.
    $timestamp = time();
    //The $hash_string concatenates your three required parameters that 
    //will be hashed. If you are using transparent redirect you must 
    //also add your success and decline URLs.
    $hash_string = $account_id.",".$api_accesskey.",".$timestamp.",".$success_url.",".$decline_url;
    //The $hash_value is the variable you will post.
    $hash_value = hash("sha256",$hash_string);
    $hash_data = array(
            'base_url' => $base_url,
            'account_id' => $account_id,
            'success_url' => $success_url,
            'decline_url' => $decline_url,
            'timestamp' => $timestamp,
            'hash' => $hash_value,
            );
    $jsonHash = json_encode(array('success'=> true,'data' => $hash_data), JSON_FORCE_OBJECT);
    print_r ($jsonHash);
    break;
    }
    }
    ?>  
我现在得到:

未捕获异常:内存不足

Firebug输出:

我已将错误处理程序更新为输出到控制台,而不是抛出警报

当我发送请求时,将触发此行

if (jqXHR.status === 0) {
console.log('Not connected.\n Verify Network.');

您没有向服务器发送json,只是编辑前后的一个普通查询字符串,也没有在服务器端处理json;您可以通过超级全局$\请求访问变量

因此,您需要删除:

contentType: 'application/json; charset=utf-8',
当您将json发送回时,您可能需要这样做,以便jQuery将自动为您解析json字符串:

dataType: 'json',

现在,您不必在成功处理程序中手动解析json。

您没有向服务器发送json,只是编辑前后的一个普通查询字符串,也没有在服务器端处理json;您可以通过超级全局$\请求访问变量

因此,您需要删除:

contentType: 'application/json; charset=utf-8',
当您将json发送回时,您可能需要这样做,以便jQuery将自动为您解析json字符串:

dataType: 'json',

现在,您不必在成功处理程序中手动解析json。

在获得了添加更健壮的错误报告的信息后,我能够确定问题所在

如果jqXHR.status==0,则我的错误脚本将失败。我能够搜索这个状态代码并找到一个解决方案

JQXHR状态:0原因:当ajax函数 被称为。解决方法:简单地添加returnfalse;打电话给 函数,即OnClientClick=AJAXMethod;返回false

资料来源:第二份答复


在获得了添加更健壮的错误报告的信息后,我能够准确地指出问题所在

如果jqXHR.status==0,则我的错误脚本将失败。我能够搜索这个状态代码并找到一个解决方案

JQXHR状态:0原因:当ajax函数 被称为。解决方法:简单地添加returnfalse;打电话给 函数,即OnClientClick=AJAXMethod;返回false

资料来源:第二份答复


您正在Web服务器上运行此功能,对吗?控制台中有错误吗?应该是post_data={action:getHash}吗?或者我们可以发送一个这样的查询字符串吗?你忘了关闭脚本!!是 啊我已经在网络服务器上安装了它。除了这一行之外,我在调试控制台中看不到任何错误。console.log错误:,请求不起作用;我还检查了apache日志,似乎什么都没有,大概是因为请求未能哈希.php。为什么要设置contentType?您甚至没有向服务器发送json。您应该删除它。您正在Web服务器上运行它,对吗?控制台中有错误吗?应该是post_data={action:getHash}吗?或者我们可以发送一个这样的查询字符串吗?你忘了关闭脚本!!是 啊我已经在网络服务器上安装了它。除了这一行之外,我在调试控制台中看不到任何错误。console.log错误:,请求不起作用;我还检查了apache日志,似乎什么都没有,大概是因为请求未能哈希.php。为什么要设置contentType?您甚至没有向服务器发送json。您应该删除它。我已经做了这些编辑,结果在firefox中仍然相同。@RyanCox您的屏幕截图几乎不可读,但似乎至少缺少2个选项卡和响应标题。因此,似乎根本没有提出任何要求。修改后的代码仍然是这样吗?在Chrome的控制台中是否有任何警告?就是这样。我相信这个请求根本不是在firefox中提出的。我在chrome中没有收到任何错误。firefox中是否有其他firebug或开发工具可以帮助您?它并没有给我太多的信息。@RyanCox我认为error函数会返回几个参数,所以您应该像现在的error变量一样在控制台上转储这些参数。谢谢,我现在就开始使用这些参数,并向您报告。我已经做了这些编辑,结果在firefox中仍然是一样的。@RyanCox您的屏幕截图几乎不可读,但似乎缺少至少2个选项卡和响应标题。因此,似乎根本没有提出任何要求。修改后的代码仍然是这样吗?在Chrome的控制台中是否有任何警告?就是这样。我相信这个请求根本不是在firefox中提出的。我收到
我在chrome上没有错误。firefox中是否有其他firebug或开发工具可以帮助您?它并没有给我太多的信息。@RyanCox我认为error函数会返回几个参数,所以你应该像现在的error变量一样在控制台上转储这些参数。谢谢你,我现在就开始使用这些参数,然后再报告。