2014-12-30 1 views
2

Я использую Visual Studio 2013 с IIS Express.JSON mime type на IIS Express с запросом POST

Мой HTML страница имеет JavaScript (ExtJS), который звонит в file.json на HTTP метод POST. и я получаю "Ошибка HTTP 405.0 - Method Not Allowed"

Я пытался добавить ниже вещи в web.config

<system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/json" /> 
    </staticContent> 
    </system.webServer> 

Ран ниже команды в командной строке

appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript'] 

Ничто не помогает , Я могу получить доступ к файлу .json с запросом GET, например http://localhost/file.json, но не с запросом POST.

Вот мой ExtJS код, вызывающий этот файл JSON

Ext.onReady(function() { 
    var tree = new Ext.tree.TreePanel({ 
     renderTo: 'tree-div', 
     title: 'My Task List', 
     height: 300, 
     width: 400, 
     useArrows: true, 
     autoScroll: true, 
     animate: true, 
     enableDD: true, 
     containerScroll: true, 
     rootVisible: false, 
     frame: true, 
     root: { 
      nodeType: 'async' 
     }, 
     dataUrl: 'file.json' 
    }); 

    tree.getRootNode().expand(true); 
}); 

file.json имеет структурированную ниже JSON

[{ 
    text: 'To Do', 
    cls: 'folder', 
    children: [{ 
     text: 'Go jogging', 
     leaf: true, 
     checked: false 
    },{ 
     text: 'Take a nap', 
     leaf: true, 
     checked: false 
    },{ 
     text: 'Climb Everest', 
     leaf: true, 
     checked: false 
    }] 
},..... 
+0

Что такое сообщение для статического файла? – Musa

+0

его фактически не публиковать, получая данные из этого файла. но вызов ajax идет POST – HaBo

+0

Итак, TreePanel делает запрос POST при попытке прочитать узлы из file.json? Также ваш код имеет 'check-nodes.json' не' file.json'. – Musa

ответ

0

Установите requestMethod в конфигурации TreePanel быть GET, чтобы заставить его сделать GET запросы вместо POST.

var tree = new Ext.tree.TreePanel({ 
    ... 
    requestMethod: 'GET', 
    ... 
}); 
+0

Это сработало. Но как я могу сделать работу POST? это будет необходимо в любом случае? – HaBo

+0

На мой взгляд, если пользователь не создает узлы (то есть состояние приложения изменяется), он должен быть GET. Вам нужно будет изменить запрос на сценарий, чтобы иметь возможность делать запросы POST, также если вы хотите, чтобы узлы динамически менялись. – Musa