ugrás a tartalomhoz

Dojo jsonnal

zmb · 2008. Jún. 13. (P), 16.20
Sziasztok!

Probalkozom, hogy dojoval a szervertol jovo json uzenetet feldolgozzam. A kovetkezo jelenseget tapasztalom. Ha a handleAst jsonra allitom, akkor gyun a firefox konzolban az uzenet: Consider using mimetype:text/json-comment-filtered to avoid potential security issues with JSON endpoints (use djConfig.usePlainJson=true to turn off this message). A js objektumot megkapom. A problemakat megoldani szeretem, nem pedig elnyomni, ezert atallitom a szerver oldalon a megadott mimetypera. Valtozas semmi. Ugyanaz a hibauzenet, ugyanugy megvan a js objektum. Amennyiben a handleAst atallitom "json-comment-filtered"-re, hibauzenet erkezik (Error: JSON was not comment filtered message=JSON was not comment filtered). Mi az ur isten baja van nekie?

Kliens:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
	<head>
		<title></title>
		
		<style type="text/css">
			@import "dojo-release-1.1.1-src/dijit/themes/tundra/tundra.css";
			@import "dojo-release-1.1.1-src/dojo/resources/dojo.css"
		</style>
		
		<script type="text/javascript" djConfig="parseOnLoad: true, isDebug: true" src="dojo-release-1.1.1-src/dojo/dojo.js"></script>
		<script type="text/javascript">
			dojo.require("dijit.form.Button");
			dojo.require("dojo.parser");
		</script>
		
	</head>
<body class="tundra">
	<button dojoType="dijit.form.Button">
		<script type="dojo/method" event="onClick">
		var kawe = {
			url: "form-publish.php",
			handleAs: "json-comment-filtered",

			load: function(data) {
				console.log(data);
			},
		};

		dojo.xhrGet(kawe);
		</script>
		Get!
	</button>
</body>
</html>
Szerver:

<?php
	header("content-type: text/json-comment-filtered");
	$buggy = $_REQUEST["buggy"] == "yes";
	
	$status = $buggy == true ? "failed": "success";
	echo json_encode(array(
		"message" => array(
			"header" => array(
				"status" => $status
			),
			
			"body" => ""
		)
	));
?>
 
1

Comment -filtered

Nagy Péter · 2008. Jún. 15. (V), 09.58
A hibaüzenet csak a mime-type-ról szól ugyan, de az üzeneten is változtatnod kell, hogy valóban comment-filtered legyen.
Elég egyszerű: Az üzenetet tedd javascript commentbe.
 <?php  
     header("content-type: text/json-comment-filtered");  
     $buggy = $_REQUEST["buggy"] == "yes";  
       
     $status = $buggy == true ? "failed": "success";  
     echo '/*';
     echo json_encode(array(  
         "message" => array(  
             "header" => array(  
                 "status" => $status  
             ),  
               
             "body" => ""  
         )  
     ));  
     echo '*/';
?>
2

Koszi, biztonsagi megfontolas

zmb · 2008. Jún. 15. (V), 10.51
Ah, koszi, kozben rajottem a fene nagy eszemmel. Amit viszont nem ertek: az eredi hibauzenetbol (... avoid potential security issues...) nekem az kovetkezik, h ez igy biztonsagosabb. Kerdem en, ez a kommentelos moka miert teszi biztonsagossa a json uzenetet? Elvegre feldolgozas soran le lesz vagva a komment elotti/utanni resz, tehat esetleg valamit ele/moge fuztek, csak az tunik el. Ha komment belsejebe kerul be valami csunyasag, akkor ott vagyok, ahol a part szakad.