Swift未从PHP服务器解析JSON

Swift未从PHP服务器解析JSON,php,ios,json,swift,Php,Ios,Json,Swift,我正在用swift为iOS编写一个简单的应用程序,它可以对我的服务器进行ajax调用。以下是相关的swift代码: class Request : NSObject { func send(url: String, f: (NSData)-> ()) { var request = NSURLRequest(URL: NSURL(string: url)!) var response: NSURLResponse? var error

我正在用swift为iOS编写一个简单的应用程序,它可以对我的服务器进行ajax调用。以下是相关的swift代码:

class Request : NSObject {
    func send(url: String, f: (NSData)-> ()) {
        var request = NSURLRequest(URL: NSURL(string: url)!)
        var response: NSURLResponse?
        var error: NSErrorPointer = nil
        var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: error)
        //var reply = NSString(data: data!, encoding: NSUTF8StringEncoding)
        f(data!)
    }
}

class myObj: NSObject {

    let baseURL: String
    var message: String

    init() {        
        self.baseURL = XXXXXXXXXXXXX
        self.message = "No Message"
    }

    func check() -> Bool {

        let locationURL = self.baseURL

        self.message = locationURL
        var request = Request()
        request.send(locationURL, f: {(result: NSData)-> () in
            let jsonData: NSData = result
            var error: NSError?

            let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as! NSDictionary
            self.message = jsonDict["title"] as! String
        })

        return true
    }
}
以下是我返回伪JSON的服务器端代码:

<?php
    header('Content-Type: application/json; charset=utf-8');
    if(isset($_GET['location'])) {
        echo json_encode(Array( 'success' => true, 'message' => 'I came from the server.', 'title' => 'tittttt'));
    } else if(isset($_POST['message'])) {
        echo json_encode(Array( 'success' => true, 'message' => 'message received', 'title' => 'ttt'));
    } else {
        echo json_encode(Array( 'success' => false, 'message' => 'invalid params', 'title' => 'title from server'));
    }
?>

当我将我的URL切换为一个伪json URL(我正在使用)时,它会工作;当我使用自己的URL时,它会失败,并出现以下错误:

致命错误:在展开可选值时意外发现nil

我做错了什么

编辑:以下是来自服务器的实际JSON响应:

{ 成功:没错, 信息:“我来自服务器。”, 标题:“title”}

你试过添加吗
标题(“访问控制允许原点:”

到您的PHP

在哪一行发生错误?在这一行:
让jsonDict=NSJSONSerialization.JSONObjectWithData(jsonData,options:nil,error:&error)为!NSDictionary
您的php似乎返回了一个数组,而您的swift似乎强迫它成为一个字典这似乎是您的php响应在某种程度上是错误的,尽管这不是由于您使用了php的数组,因为php就是这样处理字典的。Frank,你可以发布一个示例响应(如果需要,可以使用经过编辑/修改的数据)?标题(“访问控制允许来源:”;哇哦。。好吧,我只是想解释一下。。这是为了允许跨域连接。任何来自不同域的请求通常都会被阻止。这允许请求通过。