【问题标题】:How to refresh browser cache?如何刷新浏览器缓存?
【发布时间】:2018-02-16 05:28:19
【问题描述】:

我在这个错误上被困了一段时间,我似乎无法找到它。我收到此错误:

错误:SyntaxError:JSON 中位置 1 的意外字符串

我正在尝试使用此dashboard.js 文件向dashboard.php 发出AJAX 请求:

$(".next").click(function(){
    console.log("next uitgevoerd");
    i++;
    huidige_pagina += 1;
    document.getElementById("pagina").innerHTML = huidige_pagina;

    $.ajax({
        type: 'POST',
        url: 'http://goad-as-05/ramon/logic/dashboard.php',
        contentType: 'application/x-www-form-urlencoded',
        dataType: 'JSON',
        data: { "pagina": i },
        success: function (resultaat) {
            alert(resultaat);
        },
        error: function (jqXHR, textStatus, errorThrown) { 
            alert('ERROR: ' + errorThrown); 
        }
    });
});

这是 php 代码:

<?php

header("Content-Type: application/json; charset=utf-8", true);
if(isset($_POST["pagina"])){
$pageno = $_POST["pagina"];
echo $pageno;
} else {
echo "foutje";
}


 // $url will contain the API endpoint
 $url = "https://app.teamleader.eu/api/getContacts.php";

// $fields contains all the fields that will be POSTed
$fields = array(  
"api_group"=>(GROUP_KEY),
"api_secret"=>(SECRET_KEY),
"amount"=>2,
"pageno"=>$pageno
 );

  // Make the POST request using Curl
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_POST, true);   
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);

 // Decode and display the output
 $api_output =  curl_exec($ch);
 echo curl_error($ch);
  //$json_output = json_decode($api_output);


  echo json_encode($api_output);
  header('application/json');

  // Clean up
  curl_close($ch);

  ?>

这是我的html:

  <div class="pagina">
       <p id="pagina">1</p>
  </div>

我确定这不是我的 URL,因为这两个文件都在同一个文件夹中。

我必须先使用JSON.stringify("pagina":i) 并使用它吗?

感谢任何帮助,这可能是我似乎无法找到的最小错误。

找到的解决方案: 加载时用 ctrl+F5 刷新我的 javascript,完全忘记了缓存....感谢大家的帮助!

拉蒙

【问题讨论】:

  • 我有一个 var i = 0;在这个函数之外
  • 错误是因为返回的数据不是有效的JSON。您需要调查服务器上发生这种情况的原因。
  • 您能否提供一个您从服务器获得的响应的示例(例如,如果您直接访问 URL)
  • 我们需要查看您的 PHP 代码,因为 JS 本身没有任何问题
  • 顺便说一下,你不需要发送contentType,这已经是jQuery发送的默认值了

标签: javascript php jquery json ajax


【解决方案1】:

问题是浏览器缓存的问题,我忘了用 ctrl + f5 重新加载缓存并重新加载我的javascript,谢谢大家的帮助!

【讨论】:

    【解决方案2】:

    在 PHP 中,不能在输出后使用 HEADER 函数。

      echo json_encode($api_output);
      header('application/json'); // delete this line
    

    服务器最终产生一个错误,导致 JSON 字符串不可用。

    编辑:

    header("Content-Type: application/json; charset=utf-8", true);
    if(isset($_POST["pagina"])){
    $pageno = $_POST["pagina"];
    echo $pageno; // ERROR
    } else {
    echo "foutje";
    }
    

    使用 echo $pageno; 行写入 POST 发送的结果,生成错误。

    编辑 2:

    echo curl_error($ch);
    

    这一行还产生一个未编码的 JSON 输出

    编辑 3: 我很高兴您能够找到问题的解决方案并防止它再次发生,我建议您编辑 JS 文件地址:

    echo 'dashboard.js?'.time(); // disable browser cache
    

    【讨论】:

    • 我修改了答案。
    • 错误是这样的:注意:未定义索引:第 4 行 C:\wamp64\www\ramon\logic\dashboard.php 中的页面
    • 删除了它,但没关系,因为问题早在某个地方
    • 我的意思是我的 php 没有从 JS 收到任何东西,所以错误应该在 JS 中吧?
    • 感谢您的帮助,看看我给出的解决方案
    猜你喜欢
    • 2013-06-02
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2014-08-17
    • 2021-06-18
    • 2011-05-05
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多