等效于Swift HTTPbody的Javascript

时间:2019-02-09 10:42:33

标签: javascript php swift ajax

我正在寻找一种将变量放入AJAX get调用的方法,现在我知道显而易见的方法就是像这样将其添加为“数据”

$.ajax({
            type: "get",
            url: "api.php",
            data: {sessionkey: sessionkey, request: 'createapplication', favourid: favourid, userid: userid, message:message },
            success: function(data) {

                console.log(data);
           }

       });

但这是一个api,该api还可以处理来自iOS应用的请求,该请求将数据像这样

放入httpBody。
 let json: [String: Any] = ["userid":userID, "message":applicationtext.text, "favourid":selectedFavour]

        let jsondatatosend = try? JSONSerialization.data(withJSONObject: json)

        // create post request

        let url = "myurl";
        var request = URLRequest(url: url)
        request.httpMethod = "POST"

        // insert json data to the request
        request.httpBody = jsondatatosend

我相信我之所以这样做,是因为URL中包含奇怪的字符,所以我搞砸了,所以我不得不将其发送到所有正常工作的正文中,但现在我正试图让一个网站遵循相同的规则我的api上的方法,我希望将其从ajax发送到正文中,以便我的php可以执行此功能

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE);

我知道有很多方法可以在我的php中解决它,但是当它从我网站的AJAX发送时,只使用$ _GET ['var']而不是file_get_contents,但我想知道是否有一种方法通过ajax将其发送到正文中,因此我不必更改php文件,然后就不会通过url发送了

所以我想做的就是这样

    $.ajax({
                type: "get",
                url: "api.php",
                data: {sessionkey: sessionkey, request: 'createapplication'}, 
                httpBody: {favourid: favourid, userid: userid, message:message },
                success: function(data) {

                    console.log(data);
               }

           });

0 个答案:

没有答案