无法分析规范文件:JSONObject文本必须以';{';

无法分析规范文件:JSONObject文本必须以';{';,json,ajax,geoserver,mapfish,Json,Ajax,Geoserver,Mapfish,我知道以前有人问过这个问题,但我有一个具体实施的疑问,所以我把它贴在这里。 在mapfish插件的帮助下,我正在打印使用Geoserver创建的地图,我正在发出的ajax请求中出现解析错误。 以下是负责打印映射和错误的代码段: var spec = { "mapTitle":"MyMap",//"DistrictMap", "units":"degrees", "srs":"EPSG:4326", "layout":"A4 portrait",//"A4 Land

我知道以前有人问过这个问题,但我有一个具体实施的疑问,所以我把它贴在这里。 在mapfish插件的帮助下,我正在打印使用Geoserver创建的地图,我正在发出的ajax请求中出现解析错误。 以下是负责打印映射和错误的代码段:

var spec = {
    "mapTitle":"MyMap",//"DistrictMap",
    "units":"degrees",
    "srs":"EPSG:4326",
    "layout":"A4 portrait",//"A4 Landscape",
    "dpi":300,//300,
    "layers": [
    {
        "type": 'WMS',
        "layers": layers_param,
        "baseURL": 'http://localhost:8081/geoserver/wms',
        "format": 'image/jpeg'
     }
    ],
   "pages": [
   {       
        "center": [6, 45.5],
        "scale": 4000000,
        "dpi": 150,
        "geodetic": false,
        "rotation":0,
        "mapTitle":"A custom title",
        "comment":"A custom comment",
        "mapComments":"kkomment"
      }
    ]
};

  var spec_str = JSON.stringify(spec);

  $.ajax({
    type: "POST",
    url: 'http://localhost:8081/geoserver/pdf/create.json',
    dataType:'json',
    data:spec_str,        
    success : function(){
      alert('Hello');
    }

  });
它在控制台中抛出以下错误:

Error while generating PDF:
java.lang.RuntimeException: Cannot parse the spec file: A JSONObject text 
must begin with '{' at character 0: 
at org.mapfish.print.MapPrinter.parseSpec(MapPrinter.java:190)
at.........and some more lines of crap!

更新:当我添加“contentType”时:“application/json”对于请求..我得到了另一个错误声明:无效的CORS请求

请将发送的实际请求添加到问题实际请求中,如中所示?我使用$.ajax发出ajax请求并将url参数传递给它!如您发送的请求中所示-当它到达时,它似乎不是JSON我正在通过转换i发送JSON对象规范t转换为字符串,我假设接收URL作为响应打印,但我得到的错误如上所述!但是您的json规范似乎不是以
{
因此,我们需要查看实际发送的内容,请查看浏览器调试程序的“网络”选项卡。请将实际发送的请求添加到问题实际请求中,如中所示?我正在使用$.ajax生成ajax请求,并将url参数传递给它!如您发送的请求中所示-到达时似乎不是JSON我正在发送JSON对象规范,将其转换为字符串,我假设接收URL作为响应打印,但我得到的错误如上所述!但您的json规范似乎不是以
{
开头,因此我们需要查看实际发送的内容,请查看浏览器调试器的“网络”选项卡