在 magento 中,当我们使用 REST url 访问数据时, http://localhost/magemto/api/rest/products
它以 XML 格式返回。
但作为我的团队要求,我应该以 JSON 格式发送数据以轻松访问 AJAX 调用。我使用 REST 客户端将标头包含为“Content-Type:appilcation/json”。然后它以 JSON 格式返回。但我希望它默认由magento API ..
在 magento 中,当我们使用 REST url 访问数据时, http://localhost/magemto/api/rest/products
它以 XML 格式返回。
但作为我的团队要求,我应该以 JSON 格式发送数据以轻松访问 AJAX 调用。我使用 REST 客户端将标头包含为“Content-Type:appilcation/json”。然后它以 JSON 格式返回。但我希望它默认由magento API ..
嘿,我确实有一个解决方案,我想和你分享。
首先转到您的 magento 根文件夹,然后转到以下路径
\app\code\core\Mage\Api2\Model\Request.php
转到方法 getAccepTypes() 并使用下面的代码进行更改,它将满足您的要求。
public function getAcceptTypes()
{
$qualityToTypes = array();
$orderedTypes = array();
foreach (preg_split('/,\s*/', $this->getHeader('Accept')) as $definition) {
$typeWithQ = explode(';', $definition);
$mimeType = trim(array_shift($typeWithQ));
// check MIME type validity
if (!preg_match('~^([0-9a-z*+\-]+)(?:/([0-9a-z*+\-\.]+))?$~i', $mimeType)) {
continue;
}
$quality = '1.0'; // default value for quality
if ($typeWithQ) {
$qAndValue = explode('=', $typeWithQ[0]);
if (2 == count($qAndValue)) {
$quality = $qAndValue[1];
}
}
$qualityToTypes[$quality][$mimeType] = true;
}
krsort($qualityToTypes);
foreach ($qualityToTypes as $typeList) {
$orderedTypes += $typeList;
}
unset($orderedTypes);
$orderedTypes=Array
("application/json" => 1);
return array_keys($orderedTypes);
}
希望这对您有所帮助。