Hi,
Ik probeer wat data vanuit een webpagina met JSON naar PHP te zenden. Niet echt moeilijk natuurlijk, maar ik loop wel tegen een raar probleem aan. Zodra er een '>' of een '<' in de JSON string voorkomt, krijg ik een json_decode error in PHP. Wat is de reden dat deze tekens (blijkbaar) niet gepost kunnen worden?
De bedoeling van JSON.stringify(data), is toch dat alles wordt omgezet naar een string?
Dit is de JSON string die wordt getoond in "#responsediv":
x={"591":{"oos_nr":"591","analyst_id":"2","method_id":"101","batch_number":"0811002455","stability":"False","product_id":"18","parameter":"","specification":"< 3.9 ppm Fe","result":"65.2 ppm","comments":"Heranalyse op ** apparatuur geeft zelfde resultaat als heranalyse van **","date":"4/20/2009","closed":"ja","analyst_error":"","miscellaneous_error":"","analysis_error":"ja","product_error":""}
Maar de response vanuit PHP wordt afgekapt voor het '<'-teken??
"{"591":{"oos_nr":"591","analyst_id":"2","method_id":"101","batch_number":"0811002455","stability":"False","product_id":"18","parameter":"","specification":""
NULL
json error code = 3
Het veranderen van de contentType heeft ook geen invloed. Als ik daadwerkelijk dat '<' - teken weghaal dan werkt het wel!
PHP versie = 7.0
Iemand een idee?
Ik probeer wat data vanuit een webpagina met JSON naar PHP te zenden. Niet echt moeilijk natuurlijk, maar ik loop wel tegen een raar probleem aan. Zodra er een '>' of een '<' in de JSON string voorkomt, krijg ik een json_decode error in PHP. Wat is de reden dat deze tekens (blijkbaar) niet gepost kunnen worden?
De bedoeling van JSON.stringify(data), is toch dat alles wordt omgezet naar een string?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| var ajaxpost = "x=" + JSON.stringify(myObj); $("#responsediv").html(ajaxpost); $.ajax({ url: '/Administration/PHP/saveMigrationData.php', type: 'POST', data: ajaxpost, async: true, dataType: 'html', contentType: "application/x-www-form-urlencoded; charset=UTF-8", success: function (response) { $("#responsediv").append(response); } }) |
Dit is de JSON string die wordt getoond in "#responsediv":
x={"591":{"oos_nr":"591","analyst_id":"2","method_id":"101","batch_number":"0811002455","stability":"False","product_id":"18","parameter":"","specification":"< 3.9 ppm Fe","result":"65.2 ppm","comments":"Heranalyse op ** apparatuur geeft zelfde resultaat als heranalyse van **","date":"4/20/2009","closed":"ja","analyst_error":"","miscellaneous_error":"","analysis_error":"ja","product_error":""}
Maar de response vanuit PHP wordt afgekapt voor het '<'-teken??
PHP:
1
| var_dump($_POST['x']); |
"{"591":{"oos_nr":"591","analyst_id":"2","method_id":"101","batch_number":"0811002455","stability":"False","product_id":"18","parameter":"","specification":""
PHP:
1
2
| $obj = json_decode($_POST['x']); var_dump($obj); |
NULL
PHP:
1
| echo "<br>json error code = " . json_last_error(); |
json error code = 3
Het veranderen van de contentType heeft ook geen invloed. Als ik daadwerkelijk dat '<' - teken weghaal dan werkt het wel!
PHP versie = 7.0
Iemand een idee?
f251a3362191f14872ff368789dd3c1a220782a1c582fbb31fec609763dd2cef