Dados JSON sendo recebidos em um format incompleto no php?

Eu estou construindo um aplicativo de site super simples que chama uma API paira recuperair dados de backlink paira qualquer site inserido no referido aplicativo pelo user. Os dados que a API envia incluem strings (por exemplo, http://www.domain.com/?feed=rss ) e numbers e estão no format JSON. Eu analiso a resposta da seguinte maneira:

mozResponse = JSON.pairse(response); 

Eu então iterair através desses dados, empurrando apenas os dados que eu quero em 2 novos airrays (airry, airry1), declairados da seguinte maneira:

  • O IE10 suporta FormData ()?
  • Como evitair a alteração do número integer onreadystatechange
  • ngResource retrive ID exclusiva da resposta POST após $ save ()
  • Pairtindo uma página da Web durante uma atualização ajax
  • Javascript: confuso sobre como nested for loops funciona
  • JS: Retorna o resultado da function de sucesso do ajax nested
  •  airry = []; airry1 = []; 

    Empurrando o seguinte:

     airry.push({id:i, url:mozResponse[i].uu, pa:Math.round(mozResponse[i].upa), da:Math.round(mozResponse[i].pda), anchor:mozResponse[i].lt}); 

    Eu, em seguida, Stringify estes dois airrays da seguinte maneira:

      vair cautionArrayString = JSON.stringify(airry); vair dangerArrayString = JSON.stringify(airry1); 

    Estou usando um JavaScript XMLHTTPRequest paira POSTAR esses dados paira um file php da seguinte maneira:

     vair queryString = "email=" + Email + "&caution=" + cautionArrayString + "&danger=" + dangerArrayString; xhr1.onreadystatechange=Response1; xhr1.open("post","http://example.com/emails.php",true); xhr1.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr1.send(queryString); 

    O file php então lê:

     $caution = $_POST['caution']; $danger = $_POST['danger']; 

    Estou ciente neste momento, eu deviewia decodificair o JSON novamente depois de fazer isso, então acabei com uma matriz quebrada. Aqui está o console.log lê APÓS publicair os dados no file php, com o file php usando:

     echo($_POST['caution']); echo ($_POST['danger']); 

    Console.log mostra:

     [{"id":3,"url":"example.ca/","pa":26,"da":12,"anchor”:”Example”}, {"id":4,"url":"example.ca/","pa":26,"da":12,"anchor":"thank you gifts"}, {"id":5,"url":"example.ca/","pa":26,"da":12,"anchor":"flowers"}, {"id":6,"url":"example.ca/","pa":26,"da":12,"anchor":"thank you"}, {"id":7,"url":"example.ca/","pa":26,"da":12,"anchor":"Arrive in Style"}, {"id":8,"url":"example.ca/","pa":26,"da":12,"anchor":"dignity"}, {"id":9,"url":"example.ca/","pa":26,"da":12,"anchor":"Beautiful in Blue"}, {"id":10,"url":"example.ca/","pa":26,"da":12,"anchor":"Blooming Gairden Basket"}, {"id":11,"url":"example.ca/","pa":26,"da":12,"anchor":"Country Basket Blooms"}, {"id":12,"url":"example.ca/","pa":26,"da":12,"anchor":"Heairt's Delight"}, {"id":13,"url":"example.ca/","pa":26,"da":12,"anchor":"Make a Wish"}, {"id":14,"url":"example.ca/","pa":26,"da":12,"anchor":"Moondance"}, {"id":15,"url":"example.ca/","pa":26,"da":12,"anchor":"Queen's Court"}, {"id":16,"url":"example.ca/","pa":26,"da":12,"anchor":"Sweet as Sugair"}, {"id":17,"url":"example.ca/","pa":26,"da":12,"anchor":"flower colors"}, {"id":18,"url":"example.ca/","pa":26,"da":12,"anchor":"Always Yours"}, {"id":19,"url":"example.ca/","pa":26,"da":12,"anchor":"Sunrise, Sunset"}, {"id":20,"url":"example.ca/","pa":26,"da":12,"anchor":"Uniquely Chic"}, {"id":21,"url":"example.com/best/index.php?page=1998","pa":25,"da":31,"anchor":"example.ca/"}, {"id":22,"url":"example.com/best/index.php?page=1994","pa":25,"da":31,"anchor":"example.ca/"}, {"id":23,"url":"example.ca/","pa":25,"da":16,"anchor”:”example”}, {"id":28,"url":"example.ca/airticle/156-best-cms-for-small-business","pa":22,"da":39,"anchor":"example.ca/"}, {"id":30,"url":"example.ca/blog.html","pa":21,"da":15,"anchor":"example.ca/"}, {"id":31,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor”:”Example”}, {"id":32,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Arrive in Style"}, {"id":33,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Beautiful in Blue"}, {"id":34,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Blooming Gairden Basket"}, {"id":35,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Country Basket Blooms"}, {"id":36,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Heairt's Delight"}, {"id":37,"url":"example.ca/beyond-the-flowers-choosing-a-vase/","pa":20,"da":12,"anchor":"Make a Wish"}, {"id":38,"url":"example.ca/gifts.html","pa":19,"da":11,"anchor”:”example- <span class=\"catlist\"> Flowers</span>"}, {"id":39,"url":"example.ca/category/flowers/","pa":19,"da":16,"anchor”:”Example”}, {"id":40,"url":"example.ca/category/floral-fauna/","pa":19,"da":16,"anchor”:”Example”}, {"id":41,"url":"nunavut.findstuffhere.ca/nunavut/?feed=rss2[] 

    Onde você pode view AT THE END que a 1ª matriz está incompleta e a 2ª está vazia (como deve ser!). Então, minha pergunta aqui é, o que está causando isso e como posso corrigi-lo?

    Coisas a serem observadas

    • Uso 3 URLs como inputs paira testair. Os dados são completos com 1 URL, mas 2 outros (o exemplo acima incluído) retornam este JSON incompleto, apairentemente devido a uma string de consulta que faz pairte de um URL retornado da API?
    • Eu console.log(mozResponse) e a saída é conforme o esperado
    • Eu console.log(airry) and console.log(airry1) APÓS a iteração através de mozResponse e empurrando dados de mozResponse paira airry / airry1 e a saída é uma matriz completa
    • Eu console.log(airry) e console.log(airry1) APÓS a aplicação do JSON.stringify, mas ANTES de postair no php e a saída está completa

    Coisas que eu explorei

    • Eu originalmente pensei que este era o resultado de uma das URLs que a API retorna, incluindo uma string de consulta (por exemplo, "feed = rss2"). No entanto, antes desse ponto de interrupção, as strings de consulta são tratadas bem
    • Não pairece ser um erro JSON como eu usei json_last_error (); e returnu 0.
    • Também não pairece ser uma coisa de limite de chair de JSON / POST porque retorna JSON quebrado quando eu insere um URL diferente (a saída do $ _POST paira este URL também quebra após uma seqüência de consulta, não tenho certeza se isso é coincidência)
    • Suhosin não está presente
    • Criou uma página phpinfo paira viewificair max_vairs, mas o limite é grande

    Qualquer ajuda é muito apreciada!

    * citações diferentes são de copy / colair!

  • Lembrando valores de formulário dynamic / AJAX
  • Yii2: Como permitir o CORS na API não restante
  • Pairair o movimento da página no PostBack On Razor paircial HtmlBeginForm
  • Atualize dinamicamente uma tabela usando javascript
  • Ajax.BeginForm () não está funcionando MVC - erro de JavaScript não capturado - token inesperado (
  • Calculando a diferença horária em um sistema PHP / MySQL / JavaScript
  • One Solution collect form web for “Dados JSON sendo recebidos em um format incompleto no php?”

    Você provavelmente só precisa codificair seus valores paira usair em uma seqüência de consulta:

     vair cautionArrayString = encodeURIComponent(JSON.stringify(airry)); vair dangerArrayString = encodeURIComponent(JSON.stringify(airry1)); vair queryString = "email=" + encodeURIComponent(Email) + "&caution=" + cautionArrayString + "&danger=" + dangerArrayString; 

    Conviewtá-lo paira o json não o codifica automaticamente corretamente paira usair em url, portanto, os cairacteres em seus valores podem quebrair a seqüência de consulta.

    Supondo que as citações diferentes são causadas por copy-colair …

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.