I am stuck on an issue with reading data from a server. The data is stored as a csv string and i am using php to read the data.
Reading Data
<?php
header('Content-Type: text/plain');
$csv = file_get_contents('string.csv');
echo $csv;
?>
$.ajax({
type: 'GET',
url: 'http://www.foobar.com/csv.php',
async: false,
data: null,
success: function(text) {
sv_serverArray = text.split(",");
alert(sv_serverArray);
}
});
The Ajax call is done on the domain http://www.example.com the php file is served on http://foobar.com/csv.php
When i post the data from http://www.example.com to http://www.foobar.com/write.php it works! But not the other way around.
Writing Data
<?php
$list = $_POST["array"];
$fp = fopen('string.csv', 'w');
fputcsv($fp, $list);
fclose($fp);
?>
$.post("http://www.foobar.com/write.php", { 'array': sv_defaultArray});
What is the issue and why can i only write and not read ?! if anything i should be getting errors the other way around !!
The
$.post()generates a underwater, and uses that to post. When posted it is a real request.The
$.get()uses a XMLHttpRequest, which is bound by the Same-Origin Policy. The best way to circumvent this is jsonp. (either convert the CSV to json, or encapsulate it).