【问题标题】:How to trigger ajax when API Response is not empty?API Response不为空时如何触发ajax?
【发布时间】:2020-01-22 04:45:57
【问题描述】:

我正在使用 Shopify 客户/创建 webhook 并使用

获取 API 响应
$info = file_get_contents('php://input');
$data = json_decode($info, true);

我想在$data不为空的时候触发ajax

$.ajax({
    type: "POST",
    url: "insert.php",
    data: {
        'first_name'    : FirstName,
        'last_name'     : LastName,
        'email'         : Email,
        'password'      : Password,
    },
    success: function(res) {
        console.log("test");                      
    }
});

但是当我在 ngrok 检查中检查响应时它只显示值,如何在响应到来时触发这个 ajax 请帮助文件扩展名是 .php 因为我已经创建了私有应用程序 得到值enter image description here的响应

【问题讨论】:

    标签: php ajax shopify shopify-app


    【解决方案1】:

    您应该添加 if 条件并在就绪状态下运行 ajax 调用,我假设您已经在项目中加载了 jQuery。此外,您没有使用 ajax 函数处理错误回调,我已将它添加到您的函数中。

    <?php
    $info = file_get_contents('php://input');
    $data = json_decode($info, true);
    
     if(!empty($data)){?>
    
     <script type="text/javascript">
    
        $( document ).ready(function() {
    
          $.ajax({
           type: "POST",
           url: "insert.php",
           dataType: "json",
           data: {
            first_name    : FirstName,
            last_name     : LastName,
            email         : Email,
            password      : Password,
           },
           success: function(res) {
              console.log("success");                      
            },
           error: function(res){
                console.log("error"); 
           }
         });// end of ajax
    
        });// end of ready
     </script>
    
    
     <?php
     }// end of if
     ?>
    

    您应该更改 ajax 函数参数中给出的 dataType,如果您在服务器文件中的响应是 JSON,则使用 dataType:"json" 但是如果您从服务器文件返回 HTML,则使用 dataType:"html"。确保检查 ajax 文件的路径,在 url 参数中给出文件的完整可访问路径。

    【讨论】:

    • 当我查看响应但 ajax 没有执行时,它总是返回脚本中的值
    • 请确保定义 dataType 并在浏览器检查然后网络选项卡中交叉验证 url 和 ajax 请求和响应参数。
    • 当我从 Shopify 商店发送测试通知时,它会在 ngrok 检查中显示响应,我正在使用 ajax 脚本获得响应
    • var firstName = 'Bob'; var lastName = 'Biller'; var email = 'bob@biller.com'; var 密码 = '123456789';
    • 问题是我无法将这个 ajax 加载到准备好的文档中或单击,因为我希望这个 ajax 作为响应来工作,当我在 echo 中添加条件时,其他不为空然后它显示在回应
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2010-11-17
    • 2019-03-30
    • 2014-12-06
    • 2016-06-19
    相关资源
    最近更新 更多