我一直在忙着JSON一段时间,只是把它作为文本推出它并没有伤害任何人(我知道),但我想开始正确地做事.
我见过这样的JSON内容类型很多所谓的"标准":
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
Run Code Online (Sandbox Code Playgroud)
但哪个是正确的,还是最好的?我认为它们之间存在安全性和浏览器支持问题.
我知道有一个类似的问题,如果REST API返回JSON,那么MIME类型是什么?,但我想要一个稍微有针对性的答案.
我正在尝试使用FireFox3调试我的Web应用程序.但是,当JSON源来自我的应用程序时,Firefox希望在新程序中打开"application/json".有没有办法配置FireFox3来处理常规文本文件的JSON并在当前选项卡中打开JSON?
谢谢.
我想在本地实现一个简单的AJAX函数,它允许我在用户输入时自动完成已存在节点的节点标题.为此,我需要能够拥有可以在节点标题上搜索的API.问题是当我输出原始JSON时,它被标签包围.所以,无论我做什么,我都会......
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我已经尝试实现一个只能输出内容的自定义页面模板,它会产生相同的结果.以下是我目前在模块文件中执行此操作的方法...
<?php
/**
* Implementation of hook_menu()
*/
function content_relation_menu() {
$items = array();
$items['api'] = array(
'title' => 'Search',
'page callback' => 'content_relation_get',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function content_relation_get($term = '') {
drupal_add_http_header('Content-Type', 'application/javascript; utf-8');
$var = json_encode(
db_query("SELECT nid,title FROM {node} WHERE title LIKE :title LIMIT 5", array(":title" => $term.'%'))->fetchAll()
);
echo $var;
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
如何返回JUST原始JSON?