0

I have looked at many other questions on here and I have tried many different methods but none seem to work.

Heres my javascript file

function sendData() {
 var jsondata;
 var j = {"pub_id":"'+pid+'","a_type":"'+a_t'","p_domain":"'+domain+'"}
 var str_j = JSON.stringify(j);
 var xhr = new XMLHttpRequest();
 xhr.open("POST", "https://ads.schlarman.org/zz.php", !0);
 xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
 xhr.onreadystatechange = function() {
 if (xhr.readyState === 4 && xhr.status === 200) {
 jsondata = JSON.parse(xhr.responseText);
 console.log(jsondata);
 }
 }
}
sendData();

then zz.php

<?php 
 header('Content-type: application/json');
 $json = file_get_contents('php://input');
 $json_decode = json_decode($json, true);
 $json_encode = json_encode($json_decode);
 echo $json_encode;
?>
asked Oct 25, 2017 at 1:14
13
  • How does it fail exactly? Would love a little more detail about the error(s) you're getting. Commented Oct 25, 2017 at 1:16
  • 1
    Invalid JSON to begin with. Commented Oct 25, 2017 at 1:16
  • 1
    $json_decode = json_decode($json, true); strikes me as kind of an odd thing to do. Commented Oct 25, 2017 at 1:17
  • @snapjs I didnt get any response from the PHP file, not even an error Commented Oct 25, 2017 at 1:17
  • @PHPglue Still new to all of this and I was reading and thats how it was said to be done. I is including Javascript Varibles Commented Oct 25, 2017 at 1:18

1 Answer 1

1

If at all possible, build your json strings from actual javascript arrays/objects

var j = {"pub_id":"'+pid+'","a_type":"'+a_t'","p_domain":"'+domain+'"};

could & probably should be

var j = {"pub_id": pid, "a_type": a_t, "p_domain": domain};

Also, try adding the following header to your php

Access-Control-Allow-Origin: *

More info here: https://enable-cors.org/server.html

answered Oct 25, 2017 at 6:49
2
  • Thanks! I finally got a response from the zz.php file. Does this open up security issue though? Commented Oct 25, 2017 at 12:27
  • You're very welcome. As for a security issue, yes. You might want to use: Access-Control-Allow-Origin: http://yourdomain.com. Commented Oct 25, 2017 at 15:56

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.