415 исключение Cherrypy веб-сервис

Я пытаюсь создать веб-сервис Cherrypy / Python. Я уже потратил целый день на выяснение того, как сделать междоменный запрос ajax возможным. Это наконец работает, но теперь у меня есть следующий выпуск. Я думаю, что я уже знаю решение, но я не знаю, как его реализовать. Проблема в том, что когда я отправляю запрос ajax, сервер Cherrypy отвечает:

415 Unsupported Media Type

Expected an entity of content type application/json, text/javascript

Traceback (most recent call last):  File "/Library/Python/2.7/site-packages/cherrypy/_cprequest.py", line 663, in respond    self.body.process()  File "/Library/Python/2.7/site-packages/cherrypy/_cpreqbody.py", line 996, in process    super(RequestBody, self).process()  File "/Library/Python/2.7/site-packages/cherrypy/_cpreqbody.py", line 538, in process    self.default_proc()  File "/Library/Python/2.7/site-packages/cherrypy/_cperror.py", line 411, in __call__    raise selfHTTPError: (415, u'Expected an entity of content type application/json, text/javascript')    

Решение, которое я нашел и пытаюсь проверить, добавляет эту строку в конфигурацию:

'tools.json_in.force': False

Поэтому я попытался реализовать это в этом коде:

import cherrypy
import json
import sys

class RelatedDocuments:

def index(self):
    return "Hello World!"

@cherrypy.tools.json_out()
@cherrypy.tools.json_in()
def findRelated(self, **raw):
    #Get JSON message form request
    request = cherrypy.request.json
    result = []

    #SOME CODE...

    return result;

# Expose the index method through the web. CherryPy will never
# publish methods that don't have the exposed attribute set to True.
index.exposed = True
findRelated.exposed = True

def CORS():
    cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"

import os.path
tutconf = os.path.join(os.path.dirname(__file__), 'webserver.conf')
config = {
    'global': {
        'server.socket_host':'127.0.0.1',
        'server.socket_port': 8080,
        'log.error_file' : 'Web.log',
        'log.access_file' : 'Access.log'
    },
    '/': {
        'tools.CORS.on': True
    }
}

if __name__ == '__main__':
    cherrypy.tools.CORS = cherrypy.Tool('before_finalize', CORS)

    cherrypy.quickstart(RelatedDocuments(),config=config)

Я добавил строку config в строку tools.CORS.on, но это не сработало. Затем я попробовал это:

cherrypy.config.update({
    'tools.json_in.force': False,
});

Не сработало eiter..next Я попытался реализовать это прямо над методом findRelated:

@cherrypy.config(**{'tools.json_in.force': False})

Все реализации дали мне 500 ошибок, я очень ценю, если кто-то может мне помочь. Заранее спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос